Changeset 32895 in osm


Ignore:
Timestamp:
2016-09-02T00:46:23+02:00 (8 years ago)
Author:
darya
Message:

fix #13090, #13495

Location:
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/data/PTRouteDataManager.java

    r32823 r32895  
    44import java.util.HashSet;
    55import java.util.List;
     6import java.util.Set;
    67
    78import org.openstreetmap.josm.data.coor.LatLon;
     
    3435         * expected in the model for public_transport version 2
    3536         */
    36         private List<RelationMember> failedMembers = new ArrayList<>();
     37        private Set<RelationMember> failedMembers = new HashSet<>();
    3738
    3839        public PTRouteDataManager(Relation relation) throws IllegalArgumentException {
     
    4546
    4647                PTStop prev = null; // stores the last created PTStop
    47                
     48
    4849                for (RelationMember member : this.relation.getMembers()) {
    4950
     
    6465                                                        stopExists = true;
    6566                                                }
    66                                                
     67
    6768                                        } else {
    6869
     
    8889                                } else {
    8990                                        // this PTStop does not exist yet, so create it:
    90                                         PTStop ptstop = new PTStop(member);
    91                                         ptstops.add(ptstop);
    92                                         prev = ptstop;
     91
     92                                        try {
     93                                                PTStop ptstop = new PTStop(member);
     94                                                ptstops.add(ptstop);
     95                                                prev = ptstop;
     96                                        } catch (IllegalArgumentException ex) {
     97                                                if (ex.getMessage().equals(
     98                                                                "The RelationMember type does not match its role " + member.getMember().getName())) {
     99                                                        if (!failedMembers.contains(member)) {
     100                                                                failedMembers.add(member);
     101                                                        }
     102                                                } else {
     103                                                        throw ex;
     104                                                }
     105                                        }
     106
    93107                                }
    94108
     
    99113
    100114                        } else {
    101                        
    102                                 this.failedMembers.add(member);
    103                                
     115                                if (!failedMembers.contains(member)) {
     116                                        failedMembers.add(member);
     117                                }
     118
    104119                        }
    105120
     
    183198        }
    184199
    185         public List<RelationMember> getFailedMembers() {
     200        public Set<RelationMember> getFailedMembers() {
    186201                return this.failedMembers;
    187202        }
     
    399414                return null;
    400415        }
    401        
     416
    402417        /**
    403418         * Returns the last way of this route
     419         *
    404420         * @return
    405421         */
    406422        public Way getLastWay() {
    407                 PTWay lastPTWay = this.ptways.get(ptways.size()-1);
     423                PTWay lastPTWay = this.ptways.get(ptways.size() - 1);
    408424                if (lastPTWay == null) {
    409425                        return null;
    410426                }
    411                 return lastPTWay.getWays().get(lastPTWay.getWays().size()-1);
     427                return lastPTWay.getWays().get(lastPTWay.getWays().size() - 1);
    412428        }
    413429
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantPaintVisitor.java

    r32874 r32895  
    303303                g.setColor(Color.BLUE);
    304304
    305                 if (primitive.hasTag("public_transport", "stop_position")) {
     305                if (primitive.hasTag("public_transport", "stop_position") && p != null) {
    306306                        g.fillOval(p.x - 8, p.y - 8, 16, 16);
    307307                } else {
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java

    r32874 r32895  
    6262        public static boolean isPTStop(RelationMember rm) {
    6363
    64                 // if (rm.hasRole("stop") || rm.hasRole("stop_entry_only") ||
    65                 // rm.hasRole("stop_exit_only")
    66                 // || rm.hasRole("platform") || rm.hasRole("platform_entry_only") ||
    67                 // rm.hasRole("platform_exit_only")) {
    6864
    6965                if (rm.getType().equals(OsmPrimitiveType.NODE)) {
    70 
    71                         if (rm.getNode().hasTag("public_transport", "stop_position") || rm.getNode().hasTag("highway", "bus_stop")
    72                                         || rm.getNode().hasTag("public_transport", "platform") || rm.getNode().hasTag("highway", "platform")
    73                                         || rm.getNode().hasTag("railway", "platform")) {
    7466                                return true;
    75 
    76                         }
    7767                }
    7868
     
    8373                        }
    8474                }
    85                 // }
    8675
    8776                return false;
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssistantValidatorTest.java

    r32871 r32895  
    308308        private int showProceedDialog(long id, int numberOfDirectionErrors, int numberOfRoadTypeErrors) {
    309309
    310                 if (numberOfDirectionErrors == 0 && numberOfDirectionErrors == 0) {
     310                if (numberOfDirectionErrors == 0 && numberOfRoadTypeErrors == 0) {
    311311                        return 2;
    312312                }
     
    395395                        segmentChecker.findFixes();
    396396                }
    397 
    398                 this.errors.addAll(segmentChecker.getErrors());
     397               
     398                for (TestError error: segmentChecker.getErrors()) {
     399                        if (error.getCode() != PTAssistantValidatorTest.ERROR_CODE_RELAITON_MEMBER_ROLES) {
     400                                this.errors.add(error);
     401                        }
     402                }
    399403        }
    400404
Note: See TracChangeset for help on using the changeset viewer.