Changeset 35288 in osm for applications/editors/josm/plugins/comfort0
- Timestamp:
- 2020-01-13T21:45:26+01:00 (5 years ago)
- Location:
- applications/editors/josm/plugins/comfort0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/comfort0/src/net/simon04/comfort0/level0l/Level0LParser.jj
r35287 r35288 90 90 } 91 91 92 RelationData relation(): 93 { 94 RelationData r; 95 Token id; 96 } 97 { 98 <RELATION> 99 { r = new RelationData(); } 100 id=<H_ID> 101 { r.setId(Long.parseLong(id.image)); } 102 ( <COMMENT_START> <C_EOL> | <H_EOL> ) 103 relation_data(r) 104 { return r; } 105 } 106 92 107 void way_data(WayData r): 93 108 {} … … 112 127 } 113 128 129 void relation_data(RelationData r): 130 {} 131 { 132 ( 133 <D_SPACE> <D_SPACE> 134 ( relation_member(r) | tag(r) ) 135 )* 136 } 137 138 void relation_member(RelationData r): 139 { 140 OsmPrimitiveType type; 141 Token id; 142 Token role = null; 143 } 144 { 145 ( 146 <ND> { type = OsmPrimitiveType.NODE; } 147 | 148 <WY> { type = OsmPrimitiveType.WAY; } 149 | 150 <REL> { type = OsmPrimitiveType.RELATION; } 151 ) 152 <D_SPACE> 153 id=<D_ID> 154 ( 155 <D_SPACE> 156 ( 157 role=<IDENT> ( <D_SPACE> )* 158 | 159 ( <D_SPACE> )* 160 ) 161 )? 162 { r.getMembers().add(new RelationMemberData(role != null ? role.image : "", type, Long.parseLong(id.image))); } 163 ( <D_COMMENT_START> <C_EOL> | <D_EOL> ) 164 } 165 114 166 void tag(PrimitiveData r): 115 167 { -
applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/level0l/parsergen/Level0LParserTest.java
r35285 r35288 8 8 import org.junit.Test; 9 9 import org.openstreetmap.josm.data.osm.NodeData; 10 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 11 import org.openstreetmap.josm.data.osm.RelationData; 10 12 import org.openstreetmap.josm.data.osm.WayData; 11 13 … … 45 47 assertThat(way.getKeys().get("name"), is("Pastower Straße")); 46 48 } 49 50 @Test 51 public void testRelation() throws Exception { 52 final String level0l = "" + 53 "relation 56688 # member types: nd, wy, rel; roles are put after ids\n" + 54 " nd 294942404\n" + 55 " nd 364933006 # the second node\n" + 56 " wy 4579143 forward\n" + 57 " nd 249673494 stop # the end\n" + 58 " name = Küstenbus Linie 123\n" + 59 " network = VVW\n" + 60 " operator = Regionalverkehr Küste\n" + 61 " ref = 123\n" + 62 " route = bus\n" + 63 " type = route\n"; 64 final RelationData relation = new Level0LParser(new StringReader(level0l)).relation(); 65 assertThat(relation.getId(), is(56688L)); 66 assertThat(relation.getMembersCount(), is(4)); 67 assertThat(relation.getMembers().get(0).getMemberId(), is(294942404L)); 68 assertThat(relation.getMembers().get(0).getMemberType(), is(OsmPrimitiveType.NODE)); 69 assertThat(relation.getMembers().get(0).getRole(), is("")); 70 assertThat(relation.getMembers().get(2).getMemberId(), is(4579143L)); 71 assertThat(relation.getMembers().get(2).getMemberType(), is(OsmPrimitiveType.WAY)); 72 assertThat(relation.getMembers().get(2).getRole(), is("forward")); 73 assertThat(relation.getKeys().size(), is(6)); 74 } 47 75 }
Note:
See TracChangeset
for help on using the changeset viewer.