Change build scripts
[jvcard.git] / src / be / nikiroo / jvcard / resources / Bundles.java
index 00cd58ad23ad95c1cf1d126793c6d778e8203570..04b6f707d1dcaeb1935d036d7fcd2f3cf5ff6597 100644 (file)
@@ -17,6 +17,10 @@ import java.util.ResourceBundle;
  *
  */
 public class Bundles {
+       /**
+        * The configuration directory where we try to get the <tt>.properties</tt>
+        * in priority, or NULL to get the information from the compiled resources.
+        */
        static private String confDir = getConfDir();
 
        /**
@@ -69,6 +73,16 @@ public class Bundles {
                Bundles.confDir = confDir;
        }
 
+       /**
+        * Get the primary configuration directory to look for <tt>.properties</tt>
+        * files in.
+        * 
+        * @return the directory
+        */
+       static public String getDirectory() {
+               return Bundles.confDir;
+       }
+
        /**
         * This class encapsulate a {@link ResourceBundle} in UTF-8. It only allows
         * to retrieve values associated to an enumeration, and allows some
@@ -313,10 +327,36 @@ public class Bundles {
                 *             in case of IO error
                 */
                protected void writeValue(Writer writer, E id) throws IOException {
-                       writer.write(id.name());
+                       writeValue(writer, id.name(), getString(id));
+               }
+
+               /**
+                * Write the given data to the config file, i.e.,
+                * "MY_ID = my_curent_value" followed by a new line
+                * 
+                * @param writer
+                *            the {@link Writer} to write into
+                * @param id
+                *            the id to write
+                * @param value
+                *            the id's value
+                * 
+                * @throws IOException
+                *             in case of IO error
+                */
+               protected void writeValue(Writer writer, String id, String value)
+                               throws IOException {
+                       writer.write(id);
                        writer.write(" = ");
-                       writer.write(getString(id));
-                       writer.write("\n");
+
+                       String[] lines = value.replaceAll("\\\t", "\\\\\\t").split("\n");
+                       for (int i = 0; i < lines.length; i++) {
+                               writer.write(lines[i]);
+                               if (i < lines.length - 1) {
+                                       writer.write("\\n\\");
+                               }
+                               writer.write("\n");
+                       }
                }
 
                /**