Ignore:
Timestamp:
2010-03-21T13:19:55+01:00 (15 years ago)
Author:
jttt
Message:

Use referrers for UntaggedNode test

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UntaggedNode.java

    r18425 r20579  
    33import static org.openstreetmap.josm.tools.I18n.tr;
    44
     5import java.util.ArrayList;
    56import java.util.Collection;
    6 import java.util.HashSet;
    7 import java.util.Set;
     7import java.util.List;
    88
    99import org.openstreetmap.josm.Main;
     
    1212import org.openstreetmap.josm.data.osm.Node;
    1313import org.openstreetmap.josm.data.osm.OsmPrimitive;
    14 import org.openstreetmap.josm.data.osm.Way;
    1514import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    1615import org.openstreetmap.josm.plugins.validator.Severity;
     
    2827
    2928    /** Bag of all nodes */
    30     Set<Node> emptyNodes;
     29    List<Node> emptyNodes;
    3130
    3231    /**
     
    3635    {
    3736        super(tr("Untagged and unconnected nodes")+".",
    38               tr("This test checks for untagged nodes that are not part of any way."));
     37                tr("This test checks for untagged nodes that are not part of any way."));
    3938    }
    4039
     
    4241    public void startTest(ProgressMonitor monitor)
    4342    {
    44         super.startTest(monitor);
    45         emptyNodes = new HashSet<Node>(100);
     43        super.startTest(monitor);
     44        emptyNodes = new ArrayList<Node>();
    4645    }
    4746
     
    4948    public void visit(Collection<OsmPrimitive> selection)
    5049    {
    51         // If there is a partial selection, it may be false positives if a
    52         // node is selected, but not the container way. So, in this
    53         // case, we must visit all ways, selected or not.
    54         if (partialSelection) {
    55             for (OsmPrimitive p : selection) {
    56                 if (p.isUsable() && p instanceof Node) {
    57                     p.visit(this);
    58                 }
    59             }
    60             for (Way w : Main.main.getCurrentDataSet().getWays()) {
    61                 visit(w);
    62             }
    63         } else {
    64             for (OsmPrimitive p : selection) {
    65                 if (p.isUsable()) {
    66                     p.visit(this);
    67                 }
     50        for (OsmPrimitive p : selection) {
     51            if (p.isUsable() && p instanceof Node) {
     52                p.visit(this);
    6853            }
    6954        }
     
    7358    public void visit(Node n)
    7459    {
    75         if(n.isUsable() && !n.isTagged())
     60        if(n.isUsable() && !n.isTagged() && n.getReferrers().isEmpty())
    7661            emptyNodes.add(n);
    77     }
    78 
    79     @Override
    80     public void visit(Way w)
    81     {
    82         for (Node n : w.getNodes()) {
    83             emptyNodes.remove(n);
    84         }
    8562    }
    8663
Note: See TracChangeset for help on using the changeset viewer.