Changeset 9828 in josm


Ignore:
Timestamp:
2016-02-19T02:06:48+01:00 (5 years ago)
Author:
Don-vip
Message:

findbugs, javadoc, unit tests

Location:
trunk
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/preferences/PreferencesWriter.java

    r9823 r9828  
    1313/**
    1414 * Write preferences to XML.
     15 * @since 9823
    1516 */
    1617public class PreferencesWriter extends XmlWriter implements SettingVisitor {
     
    2324     * @param out the {@link PrintWriter}
    2425     * @param noPassword if password must be excluded
    25      * @param defaults true, if default values are converted to XML, false for
    26      * regular preferences
     26     * @param defaults true, if default values are converted to XML, false for regular preferences
    2727     */
    2828    public PreferencesWriter(PrintWriter out, boolean noPassword, boolean defaults) {
     
    3838     */
    3939    public void write(Collection<Map.Entry<String, Setting<?>>> settings) {
    40         out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
     40        out.write(String.format("<?xml version=\"1.0\" encoding=\"UTF-8\"?>%n"));
    4141        String rootElement = defaults ? "preferences-defaults" : "preferences";
    4242        out.write(String.format("<%s xmlns='%s/preferences-1.0'", rootElement, Main.getXMLBase()));
     
    4444            out.write(" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'");
    4545        }
    46         out.write(String.format(" version='%d'>\n", Version.getInstance().getVersion()));
     46        out.write(String.format(" version='%d'>%n", Version.getInstance().getVersion()));
    4747        for (Map.Entry<String, Setting<?>> e : settings) {
    4848            setKey(e.getKey());
    4949            e.getValue().visit(this);
    5050        }
    51         out.write(String.format("</%s>\n", rootElement));
     51        out.write(String.format("</%s>%n", rootElement));
    5252    }
    5353
     
    5656    }
    5757
    58     private void addTime(Setting setting) {
     58    private void addTime(Setting<?> setting) {
    5959        if (defaults) {
    6060            Long time = setting.getTime();
    61             if (time == null) throw new IllegalStateException();
     61            if (time == null)
     62                throw new IllegalStateException();
    6263            out.write("' time='" + time);
    6364        }
     65    }
     66
     67    private void addDefaults() {
     68        out.write(String.format("' xsi:nil='true'/>%n"));
    6469    }
    6570
     
    6873        if (noPassword && "osm-server.password".equals(key))
    6974            return; // do not store plain password.
    70         out.write("  <tag key='");
    71         out.write(XmlWriter.encode(key));
     75        out.write("  <tag key='" + XmlWriter.encode(key));
    7276        addTime(setting);
    7377        if (setting.getValue() != null) {
    74             out.write("' value='");
    75             out.write(XmlWriter.encode(setting.getValue()));
    76             out.write("'/>\n");
     78            out.write(String.format("' value='%s'/>%n", XmlWriter.encode(setting.getValue())));
    7779        } else if (defaults) {
    78             out.write("' xsi:nil='true'/>\n");
     80            addDefaults();
    7981        } else {
    8082            throw new NullPointerException();
     
    8789        addTime(setting);
    8890        if (setting.getValue() != null) {
    89             out.write("'>\n");
     91            out.write(String.format("'>%n"));
    9092            for (String s : setting.getValue()) {
    91                 out.write("    <entry value='" + XmlWriter.encode(s) + "'/>\n");
     93                out.write(String.format("    <entry value='%s'/>%n", XmlWriter.encode(s)));
    9294            }
    93             out.write("  </list>\n");
     95            out.write(String.format("  </list>%n"));
    9496        } else if (defaults) {
    95             out.write("' xsi:nil='true'/>\n");
     97            addDefaults();
    9698        } else {
    9799            throw new NullPointerException();
     
    104106        addTime(setting);
    105107        if (setting.getValue() != null) {
    106             out.write("'>\n");
     108            out.write(String.format("'>%n"));
    107109            for (List<String> list : setting.getValue()) {
    108                 out.write("    <list>\n");
     110                out.write(String.format("    <list>%n"));
    109111                for (String s : list) {
    110                     out.write("      <entry value='" + encode(s) + "'/>\n");
     112                    out.write(String.format("      <entry value='%s'/>%n", encode(s)));
    111113                }
    112                 out.write("    </list>\n");
     114                out.write(String.format("    </list>%n"));
    113115            }
    114             out.write("  </lists>\n");
     116            out.write(String.format("  </lists>%n"));
    115117        } else if (defaults) {
    116             out.write("' xsi:nil='true'/>\n");
     118            addDefaults();
    117119        } else {
    118120            throw new NullPointerException();
     
    125127        addTime(setting);
    126128        if (setting.getValue() != null) {
    127             out.write("'>\n");
     129            out.write(String.format("'>%n"));
    128130            for (Map<String, String> struct : setting.getValue()) {
    129                 out.write("    <map>\n");
     131                out.write(String.format("    <map>%n"));
    130132                for (Map.Entry<String, String> e : struct.entrySet()) {
    131                     out.write(String.format("      <tag key='%s' value='%s'/>\n", encode(e.getKey()), encode(e.getValue())));
     133                    out.write(String.format("      <tag key='%s' value='%s'/>%n", encode(e.getKey()), encode(e.getValue())));
    132134                }
    133                 out.write("    </map>\n");
     135                out.write(String.format("    </map>%n"));
    134136            }
    135             out.write("  </maps>\n");
     137            out.write(String.format("  </maps>%n"));
    136138        } else if (defaults) {
    137             out.write("' xsi:nil='true'/>\n");
     139            addDefaults();
    138140        } else {
    139141            throw new NullPointerException();
    140142        }
    141143    }
    142 
    143144}
  • trunk/src/org/openstreetmap/josm/io/XmlWriter.java

    r9231 r9828  
    5858    public static String encode(String unencoded, boolean keepApos) {
    5959        StringBuilder buffer = null;
    60         for (int i = 0; i < unencoded.length(); ++i) {
    61             String encS = null;
    62             if (!keepApos || unencoded.charAt(i) != '\'') {
    63                 encS = XmlWriter.encoding.get(unencoded.charAt(i));
    64             }
    65             if (encS != null) {
    66                 if (buffer == null) {
    67                     buffer = new StringBuilder(unencoded.substring(0, i));
     60        if (unencoded != null) {
     61            for (int i = 0; i < unencoded.length(); ++i) {
     62                String encS = null;
     63                if (!keepApos || unencoded.charAt(i) != '\'') {
     64                    encS = XmlWriter.encoding.get(unencoded.charAt(i));
    6865                }
    69                 buffer.append(encS);
    70             } else if (buffer != null) {
    71                 buffer.append(unencoded.charAt(i));
     66                if (encS != null) {
     67                    if (buffer == null) {
     68                        buffer = new StringBuilder(unencoded.substring(0, i));
     69                    }
     70                    buffer.append(encS);
     71                } else if (buffer != null) {
     72                    buffer.append(unencoded.charAt(i));
     73                }
    7274            }
    7375        }
Note: See TracChangeset for help on using the changeset viewer.