Ignore:
Timestamp:
2017-08-13T15:33:19+02:00 (7 years ago)
Author:
donvip
Message:

fix SonarQube issues

Location:
applications/editors/josm/plugins/imagery-xml-bounds/src
Files:
5 added
13 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/imagery-xml-bounds/src/net/boplicity/xmleditor/XmlEditorKit.java

    r30735 r33493  
    2626
    2727    private static final long serialVersionUID = 2969169649596107757L;
    28     private ViewFactory xmlViewFactory;
     28    private final ViewFactory xmlViewFactory;
    2929
    3030    /**
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/ImageryXmlBoundsPlugin.java

    r32287 r33493  
    4343
    4444    /**
    45      * Action showing bounds of the current selection
    46      */
    47     private final ShowBoundsSelectionAction selectionAction = new ShowBoundsSelectionAction();
    48 
    49     /**
    5045     * Class modifying the Imagery preferences panel
    5146     */
     
    5449    /**
    5550     * Initializes the plugin.
    56      * @param info
     51     * @param info plugin information
    5752     */
    5853    public ImageryXmlBoundsPlugin(PluginInformation info) {
     
    6358        ExtensionFileFilter.addExporterFirst(new XmlBoundsExporter());
    6459        // Initialize the selection action
     60        ShowBoundsSelectionAction selectionAction = new ShowBoundsSelectionAction();
    6561        DataSet.addSelectionListener(selectionAction);
    6662        Main.toolbar.register(selectionAction);
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/XmlBoundsConstants.java

    r33272 r33493  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
    5 
    6 import javax.swing.ImageIcon;
    75
    86import org.openstreetmap.josm.actions.ExtensionFileFilter;
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/XmlBoundsLayer.java

    r33272 r33493  
    2222import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
    2323import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    24 import org.openstreetmap.josm.tools.ImageProvider;
    2524import org.openstreetmap.josm.plugins.imageryxmlbounds.actions.BoundsLayerSaveAction;
    2625import org.openstreetmap.josm.plugins.imageryxmlbounds.actions.BoundsLayerSaveAsAction;
    2726import org.openstreetmap.josm.plugins.imageryxmlbounds.actions.ShowBoundsAction;
     27import org.openstreetmap.josm.tools.ImageProvider;
    2828
    2929/**
     
    5252        }
    5353        result.add(new ShowBoundsAction(this));
    54         return result.toArray(new Action[0]);
     54        return result.toArray(new Action[result.size()]);
    5555    }
    5656
     
    7171    /**
    7272     * Constructs a new {@code XmlBoundsLayer}.
    73      * @param data data
     73     * @param data data set
    7474     */
    7575    public XmlBoundsLayer(DataSet data) {
     
    7979    /**
    8080     * Constructs a new {@code XmlBoundsLayer}.
    81      * @param data data
     81     * @param data data set
    8282     * @param name Layer name
    8383     * @param associatedFile Associated file (can be null)
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/BoundsLayerSaveAction.java

    r30735 r33493  
    3535        public File getFile(Layer layer) {
    3636            File f = layer.getAssociatedFile();
    37             if (f != null && ! f.exists()) {
     37            if (f != null && !f.exists()) {
    3838                f = null;
    3939            }
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/BoundsLayerSaveAsAction.java

    r30735 r33493  
    3131        /**
    3232         * Opens a "File/Save as" dialog if the given layer is an XML bounds layer
    33          * @param layer layer
     33         * @param layer current layer
    3434         * @return chosen destination file, or {@code null}
    3535         */
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/ComputeBoundsAction.java

    r33272 r33493  
    55
    66import java.awt.event.ActionEvent;
     7import java.io.IOException;
    78import java.io.InputStream;
    8 import java.lang.Exception;
    99import java.math.RoundingMode;
    1010import java.text.DecimalFormat;
     
    9797        }
    9898        // Remove closed ways already inside a selected multipolygon
    99         for (Iterator<Way> it = closedWays.iterator(); it.hasNext(); ) {
     99        for (Iterator<Way> it = closedWays.iterator(); it.hasNext();) {
    100100            processIterator(it);
    101101        }
     
    124124        primitives.addAll(multipolygons);
    125125        primitives.addAll(closedWays);
    126         return getXml(primitives.toArray(new OsmPrimitive[0]));
     126        return getXml(primitives.toArray(new OsmPrimitive[primitives.size()]));
    127127    }
    128128
     
    175175    }
    176176
    177     protected static final String getXml(OsmPrimitive ... primitives) {
     177    protected static final String getXml(OsmPrimitive... primitives) {
    178178        List<String> entries = new ArrayList<>();
    179179        for (OsmPrimitive p : primitives) {
     
    184184            }
    185185        }
    186         return getImagery(entries.toArray(new String[0]));
    187     }
    188 
    189     protected static final String getImagery(String ... entries) {
     186        return getImagery(entries.toArray(new String[entries.size()]));
     187    }
     188
     189    protected static final String getImagery(String... entries) {
    190190        String version = "UNKNOWN";
    191191        try {
    192             Properties p = new Properties();
    193             p.load(ComputeBoundsAction.class.getResourceAsStream("/REVISION"));
    194             version = p.getProperty("Revision");
    195         } catch(Exception e) {
    196         }
    197         StringBuilder result = new StringBuilder();
    198         result.append("<?xml version=\"1.0\" encoding=\"").append(ENCODING).append("\" ?>\n");
    199         result.append("<!-- Generated with JOSM Imagery XML Plugin version ").append(version).append(" -->\n");
    200         result.append("<imagery xmlns=\"").append(XML_NAMESPACE).append("\">\n");
     192            InputStream revision = ComputeBoundsAction.class.getResourceAsStream("/REVISION");
     193            if (revision != null) {
     194                    Properties p = new Properties();
     195                    p.load(revision);
     196                    version = p.getProperty("Revision");
     197            }
     198        } catch(IOException e) {
     199                Main.warn(e);
     200        }
     201        StringBuilder result = new StringBuilder(256);
     202        result.append("<?xml version=\"1.0\" encoding=\"").append(ENCODING).append("\" ?>\n")
     203                  .append("<!-- Generated with JOSM Imagery XML Plugin version ").append(version).append(" -->\n")
     204                  .append("<imagery xmlns=\"").append(XML_NAMESPACE).append("\">\n");
    201205        for (String entry : entries) {
    202             result.append(entry).append("\n");
     206            result.append(entry).append('\n');
    203207        }
    204208        result.append("</imagery>");
     
    208212    protected static final String getEntry(OsmPrimitive p, String bounds) {
    209213        return getEntry(p.get(KEY_NAME), p.get(KEY_TYPE), p.get(KEY_DEFAULT), p.get(KEY_URL), bounds, p.get(KEY_PROJECTIONS),
    210                 p.get(KEY_LOGO_URL), p.get(KEY_EULA), p.get(KEY_ATTR_TEXT), p.get(KEY_ATTR_URL),  p.get(KEY_TERMS_TEXT),
     214                p.get(KEY_LOGO_URL), p.get(KEY_EULA), p.get(KEY_ATTR_TEXT), p.get(KEY_ATTR_URL), p.get(KEY_TERMS_TEXT),
    211215                p.get(KEY_TERMS_URL), p.get(KEY_COUNTRY_CODE), p.get(KEY_MAX_ZOOM), p.get(KEY_MIN_ZOOM), p.get(KEY_ID),
    212216                p.get(KEY_DATE));
     
    220224            String logoURL, String eula, String attributionText, String attributionUrl, String termsText, String termsUrl,
    221225            String countryCode, String maxZoom, String minZoom, String id, String date) {
    222         StringBuilder result = new StringBuilder();
     226        StringBuilder result = new StringBuilder(128);
    223227        result.append("    <entry>\n"+
    224         EIGHT_SP + simpleTag(XML_NAME, name) + "\n"+
    225         EIGHT_SP + simpleTag(XML_TYPE, type, "wms") + "\n"+
    226         EIGHT_SP + simpleTag(XML_URL, url != null ? encodeUrl(url) : "", false) + "\n"+
    227                  bounds+"\n");
     228        EIGHT_SP + simpleTag(XML_NAME, name) + '\n'+
     229        EIGHT_SP + simpleTag(XML_TYPE, type, "wms") + '\n'+
     230        EIGHT_SP + simpleTag(XML_URL, url != null ? encodeUrl(url) : "", false) + '\n'+
     231                 bounds+'\n');
    228232        if (projections != null && !projections.isEmpty()) {
    229             result.append(EIGHT_SP+startTag(XML_PROJECTIONS)+"\n");
     233            result.append(EIGHT_SP+startTag(XML_PROJECTIONS)+'\n');
    230234            int i = 0;
    231235            String[] codes = projections.split(";");
     
    235239                }
    236240                result.append(simpleTag("code", code.trim()));
    237                 if (i%6 == 5 || i == codes.length-1 ) {
    238                     result.append("\n");
     241                if (i%6 == 5 || i == codes.length-1) {
     242                    result.append('\n');
    239243                }
    240244                i++;
    241245            }
    242             result.append(EIGHT_SP+endTag(XML_PROJECTIONS)+"\n");
     246            result.append(EIGHT_SP+endTag(XML_PROJECTIONS)+'\n');
    243247        }
    244248        if (isSet(def) && "true".equals(def)) {
    245             result.append(EIGHT_SP + simpleTag(XML_DEFAULT, def) + "\n");
     249            result.append(EIGHT_SP + simpleTag(XML_DEFAULT, def) + '\n');
    246250        }
    247251        if (isSet(id)) {
    248             result.append(EIGHT_SP + simpleTag(XML_ID, id, false) + "\n");
     252            result.append(EIGHT_SP + simpleTag(XML_ID, id, false) + '\n');
    249253        }
    250254        if (isSet(date)) {
    251             result.append(EIGHT_SP + simpleTag(XML_DATE, date, false) + "\n");
     255            result.append(EIGHT_SP + simpleTag(XML_DATE, date, false) + '\n');
    252256        }
    253257        if (isSet(eula)) {
    254             result.append(EIGHT_SP + mandatoryTag(XML_EULA, encodeUrl(eula), false) + "\n");
     258            result.append(EIGHT_SP + mandatoryTag(XML_EULA, encodeUrl(eula), false) + '\n');
    255259        }
    256260        if (isSet(attributionText)) {
    257             result.append(EIGHT_SP + mandatoryTag(XML_ATTR_TEXT, attributionText) + "\n");
     261            result.append(EIGHT_SP + mandatoryTag(XML_ATTR_TEXT, attributionText) + '\n');
    258262        }
    259263        if (isSet(attributionUrl)) {
    260             result.append(EIGHT_SP + simpleTag(XML_ATTR_URL, encodeUrl(attributionUrl), false) + "\n");
     264            result.append(EIGHT_SP + simpleTag(XML_ATTR_URL, encodeUrl(attributionUrl), false) + '\n');
    261265        }
    262266        if (isSet(termsText)) {
    263             result.append(EIGHT_SP + simpleTag(XML_TERMS_TEXT, termsText) + "\n");
     267            result.append(EIGHT_SP + simpleTag(XML_TERMS_TEXT, termsText) + '\n');
    264268        }
    265269        if (isSet(termsUrl)) {
    266             result.append(EIGHT_SP + simpleTag(XML_TERMS_URL, encodeUrl(termsUrl), false) + "\n");
     270            result.append(EIGHT_SP + simpleTag(XML_TERMS_URL, encodeUrl(termsUrl), false) + '\n');
    267271        }
    268272        if (isSet(logoURL)) {
    269             result.append(EIGHT_SP + simpleTag(XML_LOGO_URL, encodeUrl(logoURL), false) + "\n");
     273            result.append(EIGHT_SP + simpleTag(XML_LOGO_URL, encodeUrl(logoURL), false) + '\n');
    270274        }
    271275        if (isSet(countryCode)) {
    272             result.append(EIGHT_SP + simpleTag(XML_COUNTRY_CODE, countryCode) + "\n");
     276            result.append(EIGHT_SP + simpleTag(XML_COUNTRY_CODE, countryCode) + '\n');
    273277        }
    274278        if ("tms".equals(type)) {
    275279            if (isSet(maxZoom)) {
    276                 result.append(EIGHT_SP + simpleTag(XML_MAX_ZOOM, maxZoom) + "\n");
     280                result.append(EIGHT_SP + simpleTag(XML_MAX_ZOOM, maxZoom) + '\n');
    277281            }
    278282            if (isSet(minZoom)) {
    279                 result.append(EIGHT_SP + simpleTag(XML_MIN_ZOOM, minZoom) + "\n");
     283                result.append(EIGHT_SP + simpleTag(XML_MIN_ZOOM, minZoom) + '\n');
    280284            }
    281285        }
     
    333337                if (i > 1) {
    334338                    LatLon b = way.getNode(i-1).getCoor();
    335                     if (b.lat() != c.lat() && b.lon() !=  c.lon()) {
     339                    if (b.lat() != c.lat() && b.lon() != c.lon()) {
    336340                        return false;
    337341                    }
     
    375379            if(j == cw.getNodesCount())
    376380                j = 0;
    377             result.append("<point ");
    378             result.append("lat='").append(DF.format(cw.getNode(i).getCoor().lat())).append("' ");
    379             result.append("lon='").append(DF.format(cw.getNode(i).getCoor().lon())).append("'/>");
    380             if (i%3 == 2 || i == cw.getNodesCount()-1 ) {
    381                 result.append("\n");
     381            result.append("<point lat='")
     382                  .append(DF.format(cw.getNode(i).getCoor().lat())).append("' lon='")
     383                  .append(DF.format(cw.getNode(i).getCoor().lon())).append("'/>");
     384            if (i%3 == 2 || i == cw.getNodesCount()-1) {
     385                result.append('\n');
    382386            }
    383387        }
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/EditEntriesAction.java

    r33272 r33493  
    3636    /**
    3737     * Constructs a new {@code EditEntriesAction}.
    38      * @param defaultTable table
     38     * @param defaultTable parent table
    3939     * @param defaultModel table model
    4040     */
     
    5454        final XmlBoundsLayer layer = new XmlBoundsLayer(
    5555                XmlBoundsConverter.convertImageryEntries(entries));
    56         final Runnable uiStuff = new Runnable() {
    57             @Override
    58             public void run() {
    59                 Main.getLayerManager().addLayer(layer);
    60                 layer.onPostLoadFromFile();
    61             }
    62         };
    63         GuiHelper.runInEDT(uiStuff);
     56        GuiHelper.runInEDT(() -> {
     57                    Main.getLayerManager().addLayer(layer);
     58                    layer.onPostLoadFromFile();
     59                });
    6460    }
    6561
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/downloadtask/DownloadXmlBoundsTask.java

    r32329 r33493  
    3131    public Future<?> loadUrl(boolean newLayer, String url,
    3232            ProgressMonitor progressMonitor) {
    33         downloadTask = new DownloadTask(newLayer,
     33        downloadTask = new InternalDownloadTask(newLayer,
    3434                new JosmServerLocationReader(url), progressMonitor);
    3535        // We need submit instead of execute so we can wait for it to finish and get the error
     
    5151    }
    5252
    53     protected class DownloadTask extends DownloadOsmTask.DownloadTask {
     53    protected class InternalDownloadTask extends DownloadTask {
    5454
    5555        /**
     
    5959         * @param progressMonitor progress monitor
    6060         */
    61         public DownloadTask(boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor) {
     61        public InternalDownloadTask(boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor) {
    6262            super(newLayer, reader, progressMonitor);
    6363        }
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/data/XmlBoundsConverter.java

    r33272 r33493  
    2424 * @author Don-vip
    2525 */
    26 public class XmlBoundsConverter implements XmlBoundsConstants {
     26public final class XmlBoundsConverter implements XmlBoundsConstants {
     27
     28        private XmlBoundsConverter() {
     29                // Hide default constructor for utilities classes
     30        }
    2731
    2832    /**
     
    4852        if (value != null) {
    4953            if (value instanceof Collection) {
    50                 StringBuilder s = new StringBuilder("");
     54                StringBuilder s = new StringBuilder();
    5155                for (Object elt : (Collection<?>)value) {
    5256                    if (elt != null && elt.toString() != null && !elt.toString().isEmpty()) {
    5357                        if (s.length() > 0) {
    54                             s.append(";");
     58                            s.append(';');
    5559                        }
    56                         s.append(elt.toString());
     60                        s.append(elt);
    5761                    }
    5862                }
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/io/JosmServerLocationReader.java

    r30735 r33493  
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55
     6import java.io.IOException;
     7
    68import org.openstreetmap.josm.data.osm.DataSet;
    79import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    810import org.openstreetmap.josm.io.OsmServerReader;
    911import org.openstreetmap.josm.io.OsmTransferException;
     12import org.xml.sax.SAXException;
    1013
    1114/**
     
    1417public class JosmServerLocationReader extends OsmServerReader {
    1518
    16     private String url;
     19    private final String url;
    1720
    1821    /**
     
    3033            progressMonitor.beginTask(tr("Contacting Server...", 10));
    3134            return new XmlBoundsImporter().parseDataSet(url);
    32         } catch (Exception e) {
     35        } catch (IOException | SAXException e) {
    3336            throw new OsmTransferException(e);
    3437        } finally {
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/io/ValidatingImageryReader.java

    r30735 r33493  
    5252     */
    5353    public static void validate(String source) throws SAXException, IOException {
    54         SchemaFactory factory =  SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    55         Schema schema = factory.newSchema(new StreamSource(new CachedFile(XML_SCHEMA).getInputStream()));
    56         schema.newValidator().validate(new StreamSource(source));
     54        SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
     55        try (CachedFile xmlSchema = new CachedFile(XML_SCHEMA)) {
     56            Schema schema = factory.newSchema(new StreamSource(xmlSchema.getInputStream()));
     57            schema.newValidator().validate(new StreamSource(source));
     58        }
    5759    }
    5860}
  • applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/io/XmlBoundsImporter.java

    r32489 r33493  
    1111
    1212import org.openstreetmap.josm.Main;
     13import org.openstreetmap.josm.data.imagery.ImageryInfo;
    1314import org.openstreetmap.josm.data.osm.DataSet;
    1415import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     
    2324
    2425/**
     26 * Imports a JOSM "Maps" file into an OSM data set, to allow editing it.
    2527 * @author Don-vip
    26  *
    2728 */
    2829public class XmlBoundsImporter extends FileImporter implements XmlBoundsConstants {
    2930
     31        /**
     32         * Constructs a new {@code XmlBoundsImporter}.
     33         */
    3034    public XmlBoundsImporter() {
    3135        super(FILE_FILTER);
    3236    }
    3337
     38    /**
     39     * Loads the given input source URL and returns corresponding data set.
     40     * @param source input source URL
     41     * @return OSM data set
     42     * @throws IOException if any I/O error occurs
     43     * @throws SAXException if any SAX error occurs
     44     */
    3445    public DataSet parseDataSet(final String source) throws IOException, SAXException {
    3546        return parseDataSet(source, null);
    3647    }
    3748
     49    /**
     50     * Loads the given input file and returns corresponding data set.
     51     * @param file input file
     52     * @return OSM data set
     53     * @throws IOException if any I/O error occurs
     54     * @throws SAXException if any SAX error occurs
     55     */
    3856    public DataSet parseDataSet(final File file) throws IOException, SAXException {
    3957        return parseDataSet(null, file);
     
    4159
    4260    protected DataSet parseDataSet(final String source, final File file) throws IOException, SAXException {
    43         ImageryReader reader = null;
    44 
    45         try {
    46             reader = new ValidatingImageryReader(source != null ? source : file.getAbsolutePath());
    47         } catch (SAXException e)  {
     61        List<ImageryInfo> entries;
     62                try (ImageryReader reader = new ValidatingImageryReader(source != null ? source : file.getAbsolutePath())) {
     63            entries = reader.parse();
     64        } catch (SAXException e) {
     65                if (Main.isTraceEnabled()) {
     66                        Main.trace(e);
     67                }
    4868            if (JOptionPane.showConfirmDialog(
    4969                    Main.parent,
     
    5575            }
    5676
    57             reader = new ImageryReader(source != null ? source : file.getAbsolutePath());
     77            try (ImageryReader reader = new ImageryReader(source != null ? source : file.getAbsolutePath())) {
     78                entries = reader.parse();
     79            }
    5880        }
    5981
    60         return XmlBoundsConverter.convertImageryEntries(reader.parse());
     82        return XmlBoundsConverter.convertImageryEntries(entries);
    6183    }
    6284
    6385    protected void importData(final String source, final String layerName, final File file, ProgressMonitor progressMonitor)
    64             throws IOException, IllegalDataException {
     86            throws IOException {
    6587        try {
    6688            final DataSet dataSet = parseDataSet(source, file);
    6789            final XmlBoundsLayer layer = new XmlBoundsLayer(dataSet, source != null ? layerName : file.getName(), file);
    68             Runnable uiStuff = new Runnable() {
    69                 @Override
    70                 public void run() {
    71                     if (dataSet.allPrimitives().isEmpty()) {
    72                         JOptionPane.showMessageDialog(
    73                                 Main.parent, tr("No data found in file {0}.", source != null ? source : file.getPath()),
    74                                 tr("Open Imagery XML file"), JOptionPane.INFORMATION_MESSAGE);
    75                     }
    76                     Main.getLayerManager().addLayer(layer);
    77                     layer.onPostLoadFromFile();
    78                 }
    79             };
    80             GuiHelper.runInEDT(uiStuff);
     90            GuiHelper.runInEDT(() -> {
     91                            if (dataSet.allPrimitives().isEmpty()) {
     92                                JOptionPane.showMessageDialog(
     93                                        Main.parent, tr("No data found in file {0}.", source != null ? source : file.getPath()),
     94                                        tr("Open Imagery XML file"), JOptionPane.INFORMATION_MESSAGE);
     95                            }
     96                            Main.getLayerManager().addLayer(layer);
     97                            layer.onPostLoadFromFile();
     98                        });
    8199        } catch (SAXException e) {
    82             e.printStackTrace();
     100            Main.error(e);
    83101        }
    84102    }
     
    88106            throws IOException, IllegalDataException {
    89107        importData(null, null, file, progressMonitor);
    90     }
    91 
    92     public void importData(final String source, final String layerName, ProgressMonitor progressMonitor)
    93             throws IOException, IllegalDataException {
    94         importData(source, layerName, null, progressMonitor);
    95108    }
    96109
Note: See TracChangeset for help on using the changeset viewer.