Ticket #2302: tagged.patch

File tagged.patch, 12.5 KB (added by jttt, 3 years ago)

Patch to change hasDirectionKeys and isTagged to read only properties

  • src/org/openstreetmap/josm/actions/SplitWayAction.java

     
    253253            Way wayToAdd = new Way(); 
    254254            if (selectedWay.keys != null) { 
    255255                wayToAdd.keys = new HashMap<String, String>(selectedWay.keys); 
    256                 wayToAdd.checkTagged(); 
    257                 wayToAdd.checkDirectionTagged(); 
    258256            } 
    259257            newWays.add(wayToAdd); 
    260258            wayToAdd.nodes.addAll(chunkIt.next()); 
  • src/org/openstreetmap/josm/actions/search/SearchCompiler.java

     
    314314 
    315315    private static class Untagged extends Match { 
    316316        @Override public boolean match(OsmPrimitive osm) { 
    317             return !osm.tagged; 
     317            return !osm.isTagged(); 
    318318        } 
    319319        @Override public String toString() {return "untagged";} 
    320320    } 
  • src/org/openstreetmap/josm/actions/UnGlueAction.java

     
    139139 
    140140        Node c = new Node(selectedNode); 
    141141        c.keys = null; 
    142         c.tagged = false; 
    143142        c.selected = false; 
    144143        cmds.add(new ChangeCommand(selectedNode, c)); 
    145144         
     
    188187            return false; 
    189188         
    190189        selectedNode = (Node)n; 
    191         return  selectedNode.tagged; 
     190        return  selectedNode.isTagged(); 
    192191    } 
    193192 
    194193    /** 
  • src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

     
    401401                    trkseg = new ArrayList<WayPoint>(); 
    402402                    trk.trackSegs.add(trkseg); 
    403403                } 
    404                 if (!n.tagged) { 
     404                if (!n.isTagged()) { 
    405405                    doneNodes.add(n); 
    406406                } 
    407407                WayPoint wpt = new WayPoint(n.coor); 
  • src/org/openstreetmap/josm/gui/dialogs/RelationEditor.java

     
    409409        if (RelationEditor.this.relation == null) { 
    410410            // If the user wanted to create a new relation, but hasn't added any members or 
    411411            // tags, don't add an empty relation 
    412             clone.checkTagged(); 
    413             if(clone.members.size() == 0 && !clone.tagged) 
     412            if(clone.members.size() == 0 && !clone.isTagged()) 
    414413                return; 
    415414            Main.main.undoRedo.add(new AddCommand(clone)); 
    416415            DataSet.fireSelectionChanged(Main.ds.getSelected()); 
  • src/org/openstreetmap/josm/io/OsmReader.java

     
    104104               osm.user = user; 
    105105               osm.visible = visible; 
    106106               osm.version = version; 
    107                osm.checkTagged(); 
    108                osm.checkDirectionTagged(); 
    109107               osm.mappaintStyle = null; 
    110108          } 
    111109     } 
  • src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java

     
    162162 
    163163        //profilerN = 0; 
    164164        for (final OsmPrimitive osm : data.ways) 
    165             if (!osm.deleted && !osm.selected && osm.tagged) 
     165            if (!osm.deleted && !osm.selected && osm.isTagged()) 
    166166            { 
    167167                osm.visit(this); 
    168168        //        profilerN++; 
     
    170170        displaySegments(); 
    171171 
    172172        for (final OsmPrimitive osm : data.ways) 
    173             if (!osm.deleted && !osm.selected && !osm.tagged) 
     173            if (!osm.deleted && !osm.selected && !osm.isTagged()) 
    174174            { 
    175175                osm.visit(this); 
    176176        //        profilerN++; 
     
    254254            drawNode(n, highlightColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode); 
    255255        else if (n.selected) 
    256256            drawNode(n, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode); 
    257         else if(n.tagged) 
     257        else if(n.isTagged()) 
    258258            drawNode(n, nodeColor, taggedNodeSize, taggedNodeRadius, fillUnselectedNode); 
    259259        else 
    260260            drawNode(n, nodeColor, unselectedNodeSize, unselectedNodeRadius, fillUnselectedNode); 
     
    300300           (even if the tag is negated as in oneway=false) or the way is selected */ 
    301301 
    302302        boolean showThisDirectionArrow = w.selected 
    303         || (showDirectionArrow && (!showRelevantDirectionsOnly || w.hasDirectionKeys)); 
     303        || (showDirectionArrow && (!showRelevantDirectionsOnly || w.hasDirectionKeys())); 
    304304        /* head only takes over control if the option is true, 
    305305           the direction should be shown at all and not only because it's selected */ 
    306306        boolean showOnlyHeadArrowOnly = showThisDirectionArrow && !w.selected && showHeadArrowOnly; 
     
    312312            wayColor = highlightColor; 
    313313        } else if(w.selected) { 
    314314            wayColor = selectedColor; 
    315         } else if (!w.tagged) { 
     315        } else if (!w.isTagged()) { 
    316316            wayColor = untaggedWayColor; 
    317317        } else { 
    318318            wayColor = dfltWayColor; 
  • src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java

     
    156156            drawNode(n, highlightColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode); 
    157157        else if (n.selected) 
    158158            drawNode(n, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode); 
    159         else if (n.tagged) 
     159        else if (n.isTagged()) 
    160160            drawNode(n, nodeColor, taggedNodeSize, taggedNodeRadius, fillUnselectedNode); 
    161161        else 
    162162            drawNode(n, nodeColor, unselectedNodeSize, unselectedNodeRadius, fillUnselectedNode); 
     
    244244           the way is tagged with a direction key 
    245245           (even if the tag is negated as in oneway=false) or the way is selected */ 
    246246        boolean showDirection = w.selected || ((!useRealWidth) && (showDirectionArrow 
    247         && (!showRelevantDirectionsOnly || w.hasDirectionKeys))); 
     247        && (!showRelevantDirectionsOnly || w.hasDirectionKeys()))); 
    248248        /* head only takes over control if the option is true, 
    249249           the direction should be shown at all and not only because it's selected */ 
    250250        boolean showOnlyHeadArrowOnly = showDirection && !w.selected && showHeadArrowOnly; 
  • src/org/openstreetmap/josm/data/osm/Way.java

     
    9191        super.cloneFrom(osm); 
    9292        nodes.clear(); 
    9393        nodes.addAll(((Way)osm).nodes); 
    94         checkDirectionTagged(); 
    9594    } 
    9695 
    9796    @Override public String toString() { 
  • src/org/openstreetmap/josm/data/osm/OsmPrimitive.java

     
    106106    public User user = null; 
    107107 
    108108    /** 
    109      * true if this object is considered "tagged". To be "tagged", an object 
    110      * must have one or more "non-standard" tags. "created_by" and "source" 
    111      * are typically considered "standard" tags and do not make an object 
    112      * "tagged". 
    113      */ 
    114     public boolean tagged = false; 
    115  
    116     /** 
    117      * true if this object has direction dependent tags (e.g. oneway) 
    118      */ 
    119     public boolean hasDirectionKeys = false; 
    120  
    121     /** 
    122109     * If set to true, this object is currently selected. 
    123110     */ 
    124111    public volatile boolean selected = false; 
     
    241228                keys = new HashMap<String, String>(); 
    242229            keys.put(key, value); 
    243230        } 
    244         checkTagged(); 
    245         checkDirectionTagged(); 
    246231        mappaintStyle = null; 
    247232    } 
    248233    /** 
     
    254239            if (keys.isEmpty()) 
    255240                keys = null; 
    256241        } 
    257         checkTagged(); 
    258         checkDirectionTagged(); 
    259242        mappaintStyle = null; 
    260243    } 
    261244 
     
    291274        selected = osm.selected; 
    292275        timestamp = osm.timestamp; 
    293276        version = osm.version; 
    294         tagged = osm.tagged; 
    295277        incomplete = osm.incomplete; 
    296278        clearCached(); 
    297279        clearErrors(); 
     
    320302    } 
    321303 
    322304    /** 
    323      * Updates the "tagged" flag. "keys" property should probably be made private 
    324      * to make sure this gets called when keys are set. 
     305     * true if this object is considered "tagged". To be "tagged", an object 
     306     * must have one or more "non-standard" tags. "created_by" and "source" 
     307     * are typically considered "standard" tags and do not make an object 
     308     * "tagged". 
    325309     */ 
    326     public void checkTagged() { 
    327         tagged = false; 
     310    public boolean isTagged() { 
     311        // TODO Cache value after keys are made private 
    328312        if(uninteresting == null) 
    329313            uninteresting = Main.pref.getCollection("tags.uninteresting", 
    330314            Arrays.asList(new String[]{"source","note","comment","converted_by","created_by"})); 
    331315        if (keys != null) { 
    332316            for (Entry<String,String> e : keys.entrySet()) { 
    333317                if (!uninteresting.contains(e.getKey())) { 
    334                     tagged = true; 
    335                     break; 
     318                    return true; 
    336319                } 
    337320            } 
    338321        } 
     322        return false; 
    339323    } 
    340324    /** 
    341      * Updates the "hasDirectionKeys" flag. "keys" property should probably be made private 
    342      * to make sure this gets called when keys are set. 
     325     * true if this object has direction dependent tags (e.g. oneway) 
    343326     */ 
    344     public void checkDirectionTagged() { 
    345         hasDirectionKeys = false; 
     327    public boolean hasDirectionKeys() { 
     328        // TODO Cache value after keys are made private 
    346329        if(directionKeys == null) 
    347330            directionKeys = Main.pref.getCollection("tags.direction", 
    348331            Arrays.asList(new String[]{"oneway","incline","incline_steep","aerialway"})); 
    349332        if (keys != null) { 
    350333            for (Entry<String,String> e : keys.entrySet()) { 
    351334                if (directionKeys.contains(e.getKey())) { 
    352                     hasDirectionKeys = true; 
    353                     break; 
     335                    return true; 
    354336                } 
    355337            } 
    356338        } 
     339        return false; 
    357340    } 
    358341} 
  • src/org/openstreetmap/josm/command/DeleteCommand.java

     
    188188            for (OsmPrimitive osm : del) { 
    189189                if (osm instanceof Way) { 
    190190                    for (Node n : ((Way) osm).nodes) { 
    191                         if (!n.tagged) { 
     191                        if (!n.isTagged()) { 
    192192                            CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.ds, false); 
    193193                            n.visit(v); 
    194194                            v.data.removeAll(del); 
     
    321321            Way wnew2 = new Way(); 
    322322            if (wnew.keys != null) { 
    323323                wnew2.keys = new HashMap<String, String>(wnew.keys); 
    324                 wnew2.checkTagged(); 
    325                 wnew2.checkDirectionTagged(); 
    326324            } 
    327325            wnew2.nodes.addAll(n2); 
    328326            cmds.add(new AddCommand(wnew2))