Isn't this just going to cause merge pain? Better to reformat the HEAD and after merging format the Java 6 code similarly.
Regards, Tim [email protected] wrote: > Author: regisxu > Date: Fri Apr 24 06:36:03 2009 > New Revision: 768169 > > URL: http://svn.apache.org/viewvc?rev=768169&view=rev > Log: > Format code of Properties.java, no functional change > > Modified: > > harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Properties.java > > Modified: > harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Properties.java > URL: > http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Properties.java?rev=768169&r1=768168&r2=768169&view=diff > ============================================================================== > --- > harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Properties.java > (original) > +++ > harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Properties.java > Fri Apr 24 06:36:03 2009 > @@ -58,13 +58,13 @@ > * @see Hashtable > * @see java.lang.System#getProperties > */ > -public class Properties extends Hashtable<Object,Object> { > - > - private static final long serialVersionUID = 4112578634029874840L; > +public class Properties extends Hashtable<Object, Object> { > + > + private static final long serialVersionUID = 4112578634029874840L; > > private transient DocumentBuilder builder = null; > > - private static final String PROP_DTD_NAME = > "http://java.sun.com/dtd/properties.dtd"; > + private static final String PROP_DTD_NAME = > "http://java.sun.com/dtd/properties.dtd"; //$NON-NLS-1$ > > private static final String PROP_DTD = "<?xml version=\"1.0\" > encoding=\"UTF-8\"?>" > + " <!ELEMENT properties (comment?, entry*) >" > @@ -72,203 +72,203 @@ > + " <!ELEMENT comment (#PCDATA) >" > + " <!ELEMENT entry (#PCDATA) >" > + " <!ATTLIST entry key CDATA #REQUIRED >"; > - > - /** > - * The default values for this Properties. > - */ > - protected Properties defaults; > - > - private static final int NONE = 0, SLASH = 1, UNICODE = 2, CONTINUE = 3, > - KEY_DONE = 4, IGNORE = 5; > - > - /** > - * Constructs a new Properties object. > - */ > - public Properties() { > - super(); > - } > - > - /** > - * Constructs a new Properties object using the specified default > - * properties. > - * > - * @param properties > - * the default properties > - */ > - public Properties(Properties properties) { > - defaults = properties; > - } > > - @SuppressWarnings("nls") > + /** > + * The default values for this Properties. > + */ > + protected Properties defaults; > + > + private static final int NONE = 0, SLASH = 1, UNICODE = 2, CONTINUE = 3, > + KEY_DONE = 4, IGNORE = 5; > + > + /** > + * Constructs a new Properties object. > + */ > + public Properties() { > + super(); > + } > + > + /** > + * Constructs a new Properties object using the specified default > + * properties. > + * > + * @param properties > + * the default properties > + */ > + public Properties(Properties properties) { > + defaults = properties; > + } > + > + @SuppressWarnings("nls") > private void dumpString(StringBuilder buffer, String string, boolean > key) { > - int i = 0; > - if (!key && i < string.length() && string.charAt(i) == ' ') { > - buffer.append("\\ "); //$NON-NLS-1$ > - i++; > - } > - > - for (; i < string.length(); i++) { > - char ch = string.charAt(i); > - switch (ch) { > - case '\t': > - buffer.append("\\t"); //$NON-NLS-1$ > - break; > - case '\n': > - buffer.append("\\n"); //$NON-NLS-1$ > - break; > - case '\f': > - buffer.append("\\f"); //$NON-NLS-1$ > - break; > - case '\r': > - buffer.append("\\r"); //$NON-NLS-1$ > - break; > - default: > - if ("\\#!=:".indexOf(ch) >= 0 || (key && ch == > ' ')) { > + int i = 0; > + if (!key && i < string.length() && string.charAt(i) == ' ') { > + buffer.append("\\ "); //$NON-NLS-1$ > + i++; > + } > + > + for (; i < string.length(); i++) { > + char ch = string.charAt(i); > + switch (ch) { > + case '\t': > + buffer.append("\\t"); //$NON-NLS-1$ > + break; > + case '\n': > + buffer.append("\\n"); //$NON-NLS-1$ > + break; > + case '\f': > + buffer.append("\\f"); //$NON-NLS-1$ > + break; > + case '\r': > + buffer.append("\\r"); //$NON-NLS-1$ > + break; > + default: > + if ("\\#!=:".indexOf(ch) >= 0 || (key && ch == ' ')) { > buffer.append('\\'); > } > - if (ch >= ' ' && ch <= '~') { > - buffer.append(ch); > - } else { > - String hex = Integer.toHexString(ch); > - buffer.append("\\u"); //$NON-NLS-1$ > - for (int j = 0; j < 4 - hex.length(); > j++) { > + if (ch >= ' ' && ch <= '~') { > + buffer.append(ch); > + } else { > + String hex = Integer.toHexString(ch); > + buffer.append("\\u"); //$NON-NLS-1$ > + for (int j = 0; j < 4 - hex.length(); j++) { > buffer.append("0"); //$NON-NLS-1$ > } > - buffer.append(hex); > - } > - } > - } > - } > - > - /** > - * Searches for the property with the specified name. If the property > is not > - * found, look in the default properties. If the property is not found > in > - * the default properties, answer null. > - * > - * @param name > - * the name of the property to find > - * @return the named property value > - */ > - public String getProperty(String name) { > - Object result = super.get(name); > - String property = result instanceof String ? (String) result : > null; > - if (property == null && defaults != null) { > - property = defaults.getProperty(name); > - } > - return property; > - } > - > - /** > - * Searches for the property with the specified name. If the property > is not > - * found, look in the default properties. If the property is not found > in > - * the default properties, answer the specified default. > - * > - * @param name > - * the name of the property to find > - * @param defaultValue > - * the default value > - * @return the named property value > - */ > - public String getProperty(String name, String defaultValue) { > - Object result = super.get(name); > - String property = result instanceof String ? (String) result : > null; > - if (property == null && defaults != null) { > - property = defaults.getProperty(name); > - } > - if (property == null) { > + buffer.append(hex); > + } > + } > + } > + } > + > + /** > + * Searches for the property with the specified name. If the property is > not > + * found, look in the default properties. If the property is not found in > + * the default properties, answer null. > + * > + * @param name > + * the name of the property to find > + * @return the named property value > + */ > + public String getProperty(String name) { > + Object result = super.get(name); > + String property = result instanceof String ? (String) result : null; > + if (property == null && defaults != null) { > + property = defaults.getProperty(name); > + } > + return property; > + } > + > + /** > + * Searches for the property with the specified name. If the property is > not > + * found, look in the default properties. If the property is not found in > + * the default properties, answer the specified default. > + * > + * @param name > + * the name of the property to find > + * @param defaultValue > + * the default value > + * @return the named property value > + */ > + public String getProperty(String name, String defaultValue) { > + Object result = super.get(name); > + String property = result instanceof String ? (String) result : null; > + if (property == null && defaults != null) { > + property = defaults.getProperty(name); > + } > + if (property == null) { > return defaultValue; > } > - return property; > - } > + return property; > + } > > - /** > - * Lists the mappings in this Properties to the specified PrintStream > in a > - * human readable form. > - * > - * @param out > - * the PrintStream > - */ > - public void list(PrintStream out) { > - if (out == null) { > + /** > + * Lists the mappings in this Properties to the specified PrintStream in > a > + * human readable form. > + * > + * @param out > + * the PrintStream > + */ > + public void list(PrintStream out) { > + if (out == null) { > throw new NullPointerException(); > } > - StringBuffer buffer = new StringBuffer(80); > - Enumeration<?> keys = propertyNames(); > - while (keys.hasMoreElements()) { > - String key = (String) keys.nextElement(); > - buffer.append(key); > - buffer.append('='); > - String property = (String) super.get(key); > - Properties def = defaults; > - while (property == null) { > - property = (String) def.get(key); > - def = def.defaults; > - } > - if (property.length() > 40) { > - buffer.append(property.substring(0, 37)); > - buffer.append("..."); //$NON-NLS-1$ > - } else { > + StringBuffer buffer = new StringBuffer(80); > + Enumeration<?> keys = propertyNames(); > + while (keys.hasMoreElements()) { > + String key = (String) keys.nextElement(); > + buffer.append(key); > + buffer.append('='); > + String property = (String) super.get(key); > + Properties def = defaults; > + while (property == null) { > + property = (String) def.get(key); > + def = def.defaults; > + } > + if (property.length() > 40) { > + buffer.append(property.substring(0, 37)); > + buffer.append("..."); //$NON-NLS-1$ > + } else { > buffer.append(property); > } > - out.println(buffer.toString()); > - buffer.setLength(0); > - } > - } > - > - /** > - * Lists the mappings in this Properties to the specified PrintWriter > in a > - * human readable form. > - * > - * @param writer > - * the PrintWriter > - */ > - public void list(PrintWriter writer) { > - if (writer == null) { > + out.println(buffer.toString()); > + buffer.setLength(0); > + } > + } > + > + /** > + * Lists the mappings in this Properties to the specified PrintWriter in > a > + * human readable form. > + * > + * @param writer > + * the PrintWriter > + */ > + public void list(PrintWriter writer) { > + if (writer == null) { > throw new NullPointerException(); > } > - StringBuffer buffer = new StringBuffer(80); > - Enumeration<?> keys = propertyNames(); > - while (keys.hasMoreElements()) { > - String key = (String) keys.nextElement(); > - buffer.append(key); > - buffer.append('='); > - String property = (String) super.get(key); > - Properties def = defaults; > - while (property == null) { > - property = (String) def.get(key); > - def = def.defaults; > - } > - if (property.length() > 40) { > - buffer.append(property.substring(0, 37)); > - buffer.append("..."); //$NON-NLS-1$ > - } else { > + StringBuffer buffer = new StringBuffer(80); > + Enumeration<?> keys = propertyNames(); > + while (keys.hasMoreElements()) { > + String key = (String) keys.nextElement(); > + buffer.append(key); > + buffer.append('='); > + String property = (String) super.get(key); > + Properties def = defaults; > + while (property == null) { > + property = (String) def.get(key); > + def = def.defaults; > + } > + if (property.length() > 40) { > + buffer.append(property.substring(0, 37)); > + buffer.append("..."); //$NON-NLS-1$ > + } else { > buffer.append(property); > } > - writer.println(buffer.toString()); > - buffer.setLength(0); > - } > - } > - > - /** > - * Loads properties from the specified InputStream. The properties are > of > - * the form <code>key=value</code>, one property per line. > - * > - * @param in > - * the input stream > - * @throws IOException > - */ > - public synchronized void load(InputStream in) throws IOException { > - if (in == null) { > - throw new NullPointerException(); > - } > - int mode = NONE, unicode = 0, count = 0; > - char nextChar, buf[] = new char[40]; > - int offset = 0, keyLength = -1, intVal; > - boolean firstChar = true; > - BufferedInputStream bis = new BufferedInputStream(in); > + writer.println(buffer.toString()); > + buffer.setLength(0); > + } > + } > + > + /** > + * Loads properties from the specified InputStream. The properties are of > + * the form <code>key=value</code>, one property per line. > + * > + * @param in > + * the input stream > + * @throws IOException > + */ > + public synchronized void load(InputStream in) throws IOException { > + if (in == null) { > + throw new NullPointerException(); > + } > + int mode = NONE, unicode = 0, count = 0; > + char nextChar, buf[] = new char[40]; > + int offset = 0, keyLength = -1, intVal; > + boolean firstChar = true; > + BufferedInputStream bis = new BufferedInputStream(in); > > - while (true) { > - intVal = bis.read(); > + while (true) { > + intVal = bis.read(); > if (intVal == -1) { > // if mode is UNICODE but has less than 4 hex digits, should > // throw an IllegalArgumentException > @@ -284,18 +284,18 @@ > } > break; > } > - nextChar = (char) (intVal & 0xff); > + nextChar = (char) (intVal & 0xff); > > - if (offset == buf.length) { > - char[] newBuf = new char[buf.length * 2]; > - System.arraycopy(buf, 0, newBuf, 0, offset); > - buf = newBuf; > - } > - if (mode == UNICODE) { > - int digit = Character.digit(nextChar, 16); > - if (digit >= 0) { > - unicode = (unicode << 4) + digit; > - if (++count < 4) { > + if (offset == buf.length) { > + char[] newBuf = new char[buf.length * 2]; > + System.arraycopy(buf, 0, newBuf, 0, offset); > + buf = newBuf; > + } > + if (mode == UNICODE) { > + int digit = Character.digit(nextChar, 16); > + if (digit >= 0) { > + unicode = (unicode << 4) + digit; > + if (++count < 4) { > continue; > } > } else if (count <= 4) { > @@ -303,127 +303,127 @@ > throw new IllegalArgumentException(Messages > .getString("luni.09")); //$NON-NLS-1$ > } > - mode = NONE; > - buf[offset++] = (char) unicode; > - if (nextChar != '\n') { > - continue; > - } > - } > - if (mode == SLASH) { > - mode = NONE; > - switch (nextChar) { > - case '\r': > - mode = CONTINUE; // Look for a > following \n > - continue; > - case '\n': > - mode = IGNORE; // Ignore whitespace on > the next line > - continue; > - case 'b': > - nextChar = '\b'; > - break; > - case 'f': > - nextChar = '\f'; > - break; > - case 'n': > - nextChar = '\n'; > - break; > - case 'r': > - nextChar = '\r'; > - break; > - case 't': > - nextChar = '\t'; > - break; > - case 'u': > - mode = UNICODE; > - unicode = count = 0; > - continue; > - } > - } else { > - switch (nextChar) { > - case '#': > - case '!': > - if (firstChar) { > - while (true) { > - intVal = bis.read(); > - if (intVal == -1) break; > - nextChar = (char) > intVal; // & 0xff > - > // not > - > // required > - if (nextChar == '\r' || > nextChar == '\n') { > - break; > - } > - } > - continue; > - } > - break; > - case '\n': > - if (mode == CONTINUE) { // Part of a > \r\n sequence > - mode = IGNORE; // Ignore > whitespace on the next line > - continue; > - } > - // fall into the next case > - case '\r': > - mode = NONE; > - firstChar = true; > - if (offset > 0) { > - if (keyLength == -1) { > - keyLength = offset; > - } > - String temp = new String(buf, > 0, offset); > - put(temp.substring(0, > keyLength), temp > - > .substring(keyLength)); > - } > - keyLength = -1; > - offset = 0; > - continue; > - case '\\': > - if (mode == KEY_DONE) { > - keyLength = offset; > - } > - mode = SLASH; > - continue; > - case ':': > - case '=': > - if (keyLength == -1) { // if parsing > the key > - mode = NONE; > - keyLength = offset; > - continue; > - } > - break; > - } > - if (Character.isWhitespace(nextChar)) { > - if (mode == CONTINUE) { > + mode = NONE; > + buf[offset++] = (char) unicode; > + if (nextChar != '\n') { > + continue; > + } > + } > + if (mode == SLASH) { > + mode = NONE; > + switch (nextChar) { > + case '\r': > + mode = CONTINUE; // Look for a following \n > + continue; > + case '\n': > + mode = IGNORE; // Ignore whitespace on the next line > + continue; > + case 'b': > + nextChar = '\b'; > + break; > + case 'f': > + nextChar = '\f'; > + break; > + case 'n': > + nextChar = '\n'; > + break; > + case 'r': > + nextChar = '\r'; > + break; > + case 't': > + nextChar = '\t'; > + break; > + case 'u': > + mode = UNICODE; > + unicode = count = 0; > + continue; > + } > + } else { > + switch (nextChar) { > + case '#': > + case '!': > + if (firstChar) { > + while (true) { > + intVal = bis.read(); > + if (intVal == -1) > + break; > + // & 0xff not required > + nextChar = (char) intVal; > + if (nextChar == '\r' || nextChar == '\n') { > + break; > + } > + } > + continue; > + } > + break; > + case '\n': > + if (mode == CONTINUE) { // Part of a \r\n sequence > + mode = IGNORE; // Ignore whitespace on the next line > + continue; > + } > + // fall into the next case > + case '\r': > + mode = NONE; > + firstChar = true; > + if (offset > 0) { > + if (keyLength == -1) { > + keyLength = offset; > + } > + String temp = new String(buf, 0, offset); > + put(temp.substring(0, keyLength), temp > + .substring(keyLength)); > + } > + keyLength = -1; > + offset = 0; > + continue; > + case '\\': > + if (mode == KEY_DONE) { > + keyLength = offset; > + } > + mode = SLASH; > + continue; > + case ':': > + case '=': > + if (keyLength == -1) { // if parsing the key > + mode = NONE; > + keyLength = offset; > + continue; > + } > + break; > + } > + if (Character.isWhitespace(nextChar)) { > + if (mode == CONTINUE) { > mode = IGNORE; > } > - // if key length == 0 or value length > == 0 > - if (offset == 0 || offset == keyLength > || mode == IGNORE) { > + // if key length == 0 or value length == 0 > + if (offset == 0 || offset == keyLength || mode == > IGNORE) { > continue; > } > - if (keyLength == -1) { // if parsing > the key > - mode = KEY_DONE; > - continue; > - } > - } > - if (mode == IGNORE || mode == CONTINUE) { > + if (keyLength == -1) { // if parsing the key > + mode = KEY_DONE; > + continue; > + } > + } > + if (mode == IGNORE || mode == CONTINUE) { > mode = NONE; > } > - } > - firstChar = false; > - if (mode == KEY_DONE) { > - keyLength = offset; > - mode = NONE; > - } > - buf[offset++] = nextChar; > - } > - if(keyLength==-1 && offset>0){ > + } > + firstChar = false; > + if (mode == KEY_DONE) { > + keyLength = offset; > + mode = NONE; > + } > + buf[offset++] = nextChar; > + } > + if (keyLength == -1 && offset > 0) { > keyLength = offset; > } > - if (keyLength >= 0) { > - String temp = new String(buf, 0, offset); > - put(temp.substring(0, keyLength), > temp.substring(keyLength)); > - } > - } > - > + if (keyLength >= 0) { > + String temp = new String(buf, 0, offset); > + put(temp.substring(0, keyLength), temp.substring(keyLength)); > + } > + } > + > /** > * Loads properties from the specified InputStream. The properties are of > * the form <code>key=value</code>, one property per line. It may be not > @@ -477,7 +477,8 @@ > } > } else if (count <= 4) { > // luni.09=Invalid Unicode sequence: illegal character > - throw new > IllegalArgumentException(Messages.getString("luni.09")); > + throw new IllegalArgumentException(Messages > + .getString("luni.09")); //$NON-NLS-1$ > } > mode = NONE; > buf[offset++] = (char) unicode; > @@ -522,11 +523,13 @@ > if (firstChar) { > while (true) { > intVal = br.read(); > - if (intVal == -1) break; > + if (intVal == -1) > + break; > nextChar = (char) intVal; // & 0xff > - // not > - // > required > - if (nextChar == '\r' || nextChar == '\n' || > nextChar == '\u0085') { > + // not > + // required > + if (nextChar == '\r' || nextChar == '\n' > + || nextChar == '\u0085') { > break; > } > } > @@ -538,7 +541,7 @@ > mode = IGNORE; // Ignore whitespace on the next line > continue; > } > - // fall into the next case > + // fall into the next case > case '\u0085': > case '\r': > mode = NONE; > @@ -600,32 +603,32 @@ > String temp = new String(buf, 0, offset); > put(temp.substring(0, keyLength), temp.substring(keyLength)); > } > - } > + } > > - /** > + /** > * Answers all of the property names that this Properties contains. > * > * @return an Enumeration containing the names of all properties > */ > - public Enumeration<?> propertyNames() { > - if (defaults == null) { > + public Enumeration<?> propertyNames() { > + if (defaults == null) { > return keys(); > } > > Hashtable<Object, Object> set = new Hashtable<Object, > Object>(defaults > .size() > + size()); > - Enumeration<?> keys = defaults.propertyNames(); > - while (keys.hasMoreElements()) { > - set.put(keys.nextElement(), set); > - } > - keys = keys(); > - while (keys.hasMoreElements()) { > - set.put(keys.nextElement(), set); > - } > - return set.keys(); > - } > - > + Enumeration<?> keys = defaults.propertyNames(); > + while (keys.hasMoreElements()) { > + set.put(keys.nextElement(), set); > + } > + keys = keys(); > + while (keys.hasMoreElements()) { > + set.put(keys.nextElement(), set); > + } > + return set.keys(); > + } > + > /** > * Answers a set of keys in this property list whoes key and value are > * strings. > @@ -633,108 +636,109 @@ > * @return a set of keys in the property list > * > * @since 1.6 > - */ > - public Set<String> stringPropertyNames(){ > - HashSet<String> set = new HashSet<String>(); > + */ > + public Set<String> stringPropertyNames() { > + HashSet<String> set = new HashSet<String>(); > Enumeration<?> keys = propertyNames(); > while (keys.hasMoreElements()) { > - Object key = keys.nextElement(); > + Object key = keys.nextElement(); > if (key instanceof String) { > Object value = this.get(key); > - if (value == null){ > + if (value == null) { > value = this.defaults.get(key); > } > - if (value instanceof String){ > - set.add((String)key); > + if (value instanceof String) { > + set.add((String) key); > } > - } > + } > } > return Collections.unmodifiableSet(set); > } > > - /** > - * Saves the mappings in this Properties to the specified OutputStream, > - * putting the specified comment at the beginning. The output from this > - * method is suitable for being read by the load() method. > - * > - * @param out > - * the OutputStream > - * @param comment > - * the comment > - * > - * @exception ClassCastException > - * when the key or value of a mapping is not a String > - * > - * @deprecated Does not throw an IOException, use store() > - */ > - @Deprecated > + /** > + * Saves the mappings in this Properties to the specified OutputStream, > + * putting the specified comment at the beginning. The output from this > + * method is suitable for being read by the load() method. > + * > + * @param out > + * the OutputStream > + * @param comment > + * the comment > + * > + * @exception ClassCastException > + * when the key or value of a mapping is not a String > + * > + * @deprecated Does not throw an IOException, use store() > + */ > + @Deprecated > public void save(OutputStream out, String comment) { > - try { > - store(out, comment); > - } catch (IOException e) { > - } > - } > - > - /** > - * Maps the specified key to the specified value. If the key already > exists, > - * the old value is replaced. The key and value cannot be null. > - * > - * @param name > - * the key > - * @param value > - * the value > - * @return the old value mapped to the key, or null > - */ > - public Object setProperty(String name, String value) { > - return put(name, value); > - } > - > - private static String lineSeparator; > - > - /** > - * Stores the mappings in this Properties to the specified OutputStream, > - * putting the specified comment at the beginning. The output from this > - * method is suitable for being read by the load() method. > - * > - * @param out > - * the OutputStream > - * @param comment > - * the comment > - * @throws IOException > - * > - * @exception ClassCastException > - * when the key or value of a mapping is not a String > - */ > - public synchronized void store(OutputStream out, String comments) > - throws IOException { > - if (lineSeparator == null) { > - lineSeparator = AccessController > - .doPrivileged(new > PriviAction<String>("line.separator")); //$NON-NLS-1$ > - } > - > - StringBuilder buffer = new StringBuilder(200); > - OutputStreamWriter writer = new OutputStreamWriter(out, > "ISO8859_1"); //$NON-NLS-1$ > - if (comments != null) { > + try { > + store(out, comment); > + } catch (IOException e) { > + // ignore > + } > + } > + > + /** > + * Maps the specified key to the specified value. If the key already > exists, > + * the old value is replaced. The key and value cannot be null. > + * > + * @param name > + * the key > + * @param value > + * the value > + * @return the old value mapped to the key, or null > + */ > + public Object setProperty(String name, String value) { > + return put(name, value); > + } > + > + private static String lineSeparator; > + > + /** > + * Stores the mappings in this Properties to the specified OutputStream, > + * putting the specified comment at the beginning. The output from this > + * method is suitable for being read by the load() method. > + * > + * @param out > + * the OutputStream > + * @param comment > + * the comment > + * @throws IOException > + * > + * @exception ClassCastException > + * when the key or value of a mapping is not a String > + */ > + public synchronized void store(OutputStream out, String comments) > + throws IOException { > + if (lineSeparator == null) { > + lineSeparator = AccessController > + .doPrivileged(new > PriviAction<String>("line.separator")); //$NON-NLS-1$ > + } > + > + StringBuilder buffer = new StringBuilder(200); > + OutputStreamWriter writer = new OutputStreamWriter(out, > "ISO8859_1"); //$NON-NLS-1$ > + if (comments != null) { > writer.write("#"); //$NON-NLS-1$ > writer.write(comments); > - writer.write(lineSeparator); > + writer.write(lineSeparator); > } > writer.write("#"); //$NON-NLS-1$ > writer.write(new Date().toString()); > - writer.write(lineSeparator); > + writer.write(lineSeparator); > + > + for (Map.Entry<Object, Object> entry : entrySet()) { > + String key = (String) entry.getKey(); > + dumpString(buffer, key, true); > + buffer.append('='); > + dumpString(buffer, (String) entry.getValue(), false); > + buffer.append(lineSeparator); > + writer.write(buffer.toString()); > + buffer.setLength(0); > + } > + writer.flush(); > + } > > - for (Map.Entry<Object, Object> entry : entrySet()) { > - String key = (String) entry.getKey(); > - dumpString(buffer, key, true); > - buffer.append('='); > - dumpString(buffer, (String) entry.getValue(), false); > - buffer.append(lineSeparator); > - writer.write(buffer.toString()); > - buffer.setLength(0); > - } > - writer.flush(); > - } > - > /** > * Stores the mappings in this Properties to the specified OutputStream, > * putting the specified comment at the beginning. The output from this > @@ -744,11 +748,12 @@ > * the writer > * @param comments > * the comment > - * @throws IOException > - * if any I/O exception occurs > - * @since 1.6 > + * @throws IOException > + * if any I/O exception occurs > + * @since 1.6 > */ > - public synchronized void store(Writer writer, String comments) throws > IOException { > + public synchronized void store(Writer writer, String comments) > + throws IOException { > if (lineSeparator == null) { > lineSeparator = AccessController > .doPrivileged(new > PriviAction<String>("line.separator")); //$NON-NLS-1$ > @@ -757,11 +762,11 @@ > if (comments != null) { > writer.write("#"); //$NON-NLS-1$ > writer.write(comments); > - writer.write(lineSeparator); > + writer.write(lineSeparator); > } > writer.write("#"); //$NON-NLS-1$ > writer.write(new Date().toString()); > - writer.write(lineSeparator); > + writer.write(lineSeparator); > > for (Map.Entry<Object, Object> entry : entrySet()) { > String key = (String) entry.getKey(); > @@ -775,23 +780,23 @@ > writer.flush(); > } > > - public synchronized void loadFromXML(InputStream in) > - throws IOException, InvalidPropertiesFormatException { > + public synchronized void loadFromXML(InputStream in) throws IOException, > + InvalidPropertiesFormatException { > if (in == null) { > throw new NullPointerException(); > } > - > + > if (builder == null) { > DocumentBuilderFactory factory = DocumentBuilderFactory > .newInstance(); > factory.setValidating(true); > - > + > try { > builder = factory.newDocumentBuilder(); > } catch (ParserConfigurationException e) { > throw new Error(e); > } > - > + > builder.setErrorHandler(new ErrorHandler() { > public void warning(SAXParseException e) throws SAXException > { > throw e; > @@ -805,7 +810,7 @@ > throw e; > } > }); > - > + > builder.setEntityResolver(new EntityResolver() { > public InputSource resolveEntity(String publicId, > String systemId) throws SAXException, IOException { > @@ -820,20 +825,20 @@ > } > }); > } > - > + > try { > Document doc = builder.parse(in); > - NodeList entries = doc.getElementsByTagName("entry"); > + NodeList entries = doc.getElementsByTagName("entry"); > if (entries == null) { > return; > } > int entriesListLength = entries.getLength(); > - > + > for (int i = 0; i < entriesListLength; i++) { > Element entry = (Element) entries.item(i); > String key = entry.getAttribute("key"); > String value = entry.getTextContent(); > - > + > /* > * key != null & value != null but key or(and) value can be > * empty String > @@ -846,25 +851,25 @@ > throw new InvalidPropertiesFormatException(e); > } > } > - > + > public void storeToXML(OutputStream os, String comment) throws > IOException { > storeToXML(os, comment, "UTF-8"); > } > - > + > public synchronized void storeToXML(OutputStream os, String comment, > String encoding) throws IOException { > > if (os == null || encoding == null) { > throw new NullPointerException(); > } > - > + > /* > * We can write to XML file using encoding parameter but note that > some > * aliases for encodings are not supported by the XML parser. Thus we > * have to know canonical name for encoding used to store data in XML > * since the XML parser must recognize encoding name used to store > data. > */ > - > + > String encodingCanonicalName; > try { > encodingCanonicalName = Charset.forName(encoding).name(); > @@ -880,17 +885,17 @@ > > PrintStream printStream = new PrintStream(os, false, > encodingCanonicalName); > - > + > printStream.print("<?xml version=\"1.0\" encoding=\""); > printStream.print(encodingCanonicalName); > printStream.println("\"?>"); > - > + > printStream.print("<!DOCTYPE properties SYSTEM \""); > printStream.print(PROP_DTD_NAME); > printStream.println("\">"); > - > + > printStream.println("<properties>"); > - > + > if (comment != null) { > printStream.print("<comment>"); > printStream.print(substitutePredefinedEntries(comment)); > @@ -909,9 +914,9 @@ > printStream.println("</properties>"); > printStream.flush(); > } > - > + > private String substitutePredefinedEntries(String s) { > - > + > /* > * substitution for predefined character entities to use them safely > in > * XML > @@ -919,5 +924,5 @@ > return s.replaceAll("&", "&").replaceAll("<", "<").replaceAll( > ">", ">").replaceAll("\u0027", "'").replaceAll("\"", > """); > - } > + } > } > > >
