Ignore:
Timestamp:
2016-07-10T22:56:50+02:00 (8 years ago)
Author:
simon04
Message:

JOSM/wikipedia: refactor WikipediaEntry fields for clarification

Location:
applications/editors/josm/plugins/wikipedia
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java

    r32614 r32624  
    9696                            (double) xpathLon.evaluate(node, XPathConstants.NUMBER));
    9797                    if ("wikidata".equals(wikipediaLang)) {
    98                         entries.add(new WikidataEntry(name, latLon, null));
     98                        entries.add(new WikidataEntry(name, null, latLon));
    9999                    } else {
    100                         entries.add(new WikipediaEntry(name, wikipediaLang, name, latLon
     100                        entries.add(new WikipediaEntry(wikipediaLang, name, name, latLon
    101101                        ));
    102102                    }
     
    109109                    final List<WikipediaEntry> entriesWithLabel = new ArrayList<>(nodes.getLength());
    110110                    for (WikipediaEntry entry : entries) {
    111                         entriesWithLabel.add(new WikidataEntry(entry.wikipediaArticle, entry.coordinate, labels.get(entry.wikipediaArticle)));
     111                        entriesWithLabel.add(new WikidataEntry(entry.wikipediaArticle, labels.get(entry.wikipediaArticle), entry.coordinate));
    112112                    }
    113113                    return entriesWithLabel;
     
    134134                while (scanner.hasNext()) {
    135135                    final String article = scanner.next().trim().replace("_", " ");
    136                     entries.add(new WikipediaEntry(article, wikipediaLang, article));
     136                    entries.add(new WikipediaEntry(wikipediaLang, article));
    137137                }
    138138                return entries;
     
    149149            @Override
    150150            public WikipediaEntry apply(String x) {
    151                 return new WikipediaEntry(x, wikipediaLang, x);
     151                return new WikipediaEntry(wikipediaLang, x);
    152152            }
    153153        }));
     
    409409    static class WikipediaEntry implements Comparable<WikipediaEntry> {
    410410
    411         final String name;
     411        final String label;
    412412        final String wikipediaLang, wikipediaArticle;
    413413        final LatLon coordinate;
    414414        private Boolean wiwosmStatus;
    415415
    416         public WikipediaEntry(String name, String wikipediaLang, String wikipediaArticle) {
    417             this(name, wikipediaLang, wikipediaArticle, null);
    418         }
    419 
    420         public WikipediaEntry(String name, String wikipediaLang, String wikipediaArticle, LatLon coordinate) {
    421             this.name = name;
     416        WikipediaEntry(String wikipediaLang, String wikipediaArticle) {
     417            this(wikipediaLang, wikipediaArticle, null, null);
     418        }
     419
     420        WikipediaEntry(String wikipediaLang, String wikipediaArticle, String label, LatLon coordinate) {
     421            this.label = label;
    422422            this.wikipediaLang = wikipediaLang;
    423423            this.wikipediaArticle = wikipediaArticle;
     
    442442
    443443        public String getLabelText() {
    444             return name;
     444            return wikipediaArticle;
    445445        }
    446446
    447447        @Override
    448448        public String toString() {
    449             return name;
     449            return wikipediaArticle;
    450450        }
    451451
    452452        @Override
    453453        public int compareTo(WikipediaEntry o) {
    454             return AlphanumComparator.getInstance().compare(name, o.name);
     454            return AlphanumComparator.getInstance().compare(label, o.label);
    455455        }
    456456    }
     
    458458    static class WikidataEntry extends WikipediaEntry {
    459459
    460         WikidataEntry(String id, LatLon coordinate, String label) {
    461             super(label, "wikidata", id, coordinate);
     460        WikidataEntry(String id, String label, LatLon coordinate) {
     461            super("wikidata", id, label, coordinate);
    462462            ensureValidWikidataId(id);
    463463        }
     
    470470        @Override
    471471        public String getLabelText() {
    472             return getLabelText(name, wikipediaArticle);
     472            return getLabelText(label, wikipediaArticle);
    473473        }
    474474
  • applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaToggleDialog.java

    r32610 r32624  
    4343import org.openstreetmap.josm.tools.LanguageInfo;
    4444import org.openstreetmap.josm.tools.OpenBrowser;
     45import org.openstreetmap.josm.tools.Utils;
    4546import org.wikipedia.WikipediaApp.WikipediaEntry;
    4647
     
    7879                            Main.map.mapView.zoomTo(bbox);
    7980                        }
    80                         SearchAction.search(entry.name.replaceAll("\\(.*\\)", ""), SearchAction.SearchMode.replace);
     81                        final String search = Utils.firstNonNull(entry.label, entry.wikipediaArticle).replaceAll("\\(.*\\)", "");
     82                        SearchAction.search(search, SearchAction.SearchMode.replace);
    8183                    }
    8284                }
  • applications/editors/josm/plugins/wikipedia/test/unit/org/wikipedia/WikipediaAppTest.java

    r32612 r32624  
    133133    @Test
    134134    public void testGetBrowserUrl() {
    135         final WikipediaEntry entry = new WikipediaEntry("Sternheim & Emanuel", "de", "Sternheim & Emanuel");
     135        final WikipediaEntry entry = new WikipediaEntry("de", "Sternheim & Emanuel");
    136136        assertThat(entry.getBrowserUrl(), is("https://de.wikipedia.org/wiki/Sternheim_%26_Emanuel"));
    137137    }
     
    156156            @Override
    157157            public boolean evaluate(WikipediaEntry entry) {
    158                 return "Q865406".equals(entry.wikipediaArticle) && "wikidata".equals(entry.wikipediaLang) && "Birgitzer Alm".equals(entry.name);
     158                return "Q865406".equals(entry.wikipediaArticle) && "wikidata".equals(entry.wikipediaLang) && "Birgitzer Alm".equals(entry.label);
    159159            }
    160160        }));
     
    192192    @Test
    193193    public void testWIWOSMStatus() throws Exception {
    194         final WikipediaEntry entry1 = new WikipediaEntry(null, "en", "Vienna");
    195         final WikipediaEntry entry2 = new WikipediaEntry(null, "en", "London");
    196         final WikipediaEntry entry3 = new WikipediaEntry(null, "en", "a-non-existing-article");
     194        final WikipediaEntry entry1 = new WikipediaEntry("en", "Vienna");
     195        final WikipediaEntry entry2 = new WikipediaEntry("en", "London");
     196        final WikipediaEntry entry3 = new WikipediaEntry("en", "a-non-existing-article");
    197197        WikipediaApp.updateWIWOSMStatus("en", Arrays.asList(entry1, entry2, entry3));
    198198        assertThat(entry1.getWiwosmStatus(), is(true));
Note: See TracChangeset for help on using the changeset viewer.