Changeset 17584 in josm
- Timestamp:
- 2021-03-18T00:57:06+01:00 (4 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/upload/DiscardTagsHook.java
r16438 r17584 27 27 Collection<String> discardableKeys = new HashSet<>(AbstractPrimitive.getDiscardableKeys()); 28 28 29 boolean needsChange = objectsToUpload.stream().flatMap( osm -> osm.keySet().stream())29 boolean needsChange = objectsToUpload.stream().flatMap(AbstractPrimitive::keys) 30 30 .anyMatch(discardableKeys::contains); 31 31 -
trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java
r16981 r17584 19 19 import java.util.concurrent.TimeUnit; 20 20 import java.util.function.BiPredicate; 21 import java.util.stream.IntStream; 22 import java.util.stream.Stream; 21 23 22 24 import org.openstreetmap.josm.data.gpx.GpxConstants; … … 657 659 } 658 660 return result; 661 } 662 663 @Override 664 public Stream<String> keys() { 665 final String[] k = this.keys; 666 if (k == null) { 667 return Stream.empty(); 668 } else if (k.length == 1) { 669 return Stream.of(k[0]); 670 } else { 671 return IntStream.range(0, k.length / 2).mapToObj(i -> k[i * 2]); 672 } 659 673 } 660 674 -
trunk/src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java
r16953 r17584 454 454 return relation.getName(); 455 455 } else if (":LocationCode".equals(nameTag)) { 456 return relation.key Set().stream()456 return relation.keys() 457 457 .filter(m -> m.endsWith(nameTag)) 458 458 .findFirst() -
trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
r17456 r17584 5 5 6 6 import java.text.MessageFormat; 7 import java.util.ArrayList;8 7 import java.util.Arrays; 9 8 import java.util.Collection; … … 570 569 // 'area' is not really uninteresting (putting it in that list may have unpredictable side effects) 571 570 // but it's clearly not enough to consider an object as tagged (see #9261) 572 updateFlagsNoLock(FLAG_TAGGED, key Set().stream()571 updateFlagsNoLock(FLAG_TAGGED, keys() 573 572 .anyMatch(key -> !isUninterestingKey(key) && !"area".equals(key))); 574 573 } 575 574 576 575 private void updateAnnotated() { 577 updateFlagsNoLock(FLAG_ANNOTATED, keySet().stream() 578 .anyMatch(getWorkInProgressKeys()::contains)); 576 updateFlagsNoLock(FLAG_ANNOTATED, hasKeys() && getWorkInProgressKeys().stream().anyMatch(this::hasKey)); 579 577 } 580 578 … … 1072 1070 @Override 1073 1071 public Collection<String> getTemplateKeys() { 1074 Collection<String> keySet = keySet(); 1075 List<String> result = new ArrayList<>(keySet.size() + 2); 1076 result.add(SPECIAL_VALUE_ID); 1077 result.add(SPECIAL_VALUE_LOCAL_NAME); 1078 result.addAll(keySet); 1079 return result; 1072 return Stream.concat(Stream.of(SPECIAL_VALUE_ID, SPECIAL_VALUE_LOCAL_NAME), keys()) 1073 .collect(Collectors.toList()); 1080 1074 } 1081 1075 -
trunk/src/org/openstreetmap/josm/data/osm/Tagged.java
r15472 r17584 6 6 import java.util.Map; 7 7 import java.util.Objects; 8 import java.util.stream.Stream; 8 9 9 10 /** … … 186 187 * 187 188 * @return the set of keys 189 * @see #keys() 188 190 */ 189 191 Collection<String> keySet(); 192 193 /** 194 * Replies the keys as stream 195 * 196 * @return the keys as stream 197 * @see #keySet() 198 * @since 17584 199 */ 200 default Stream<String> keys() { 201 return keySet().stream(); 202 } 190 203 191 204 /** -
trunk/src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java
r17344 r17584 739 739 // But since we're doing a regex match we'll have to loop over all the keys to see if they match our regex, 740 740 // and only then try to match against the value 741 return osm.key Set().stream()741 return osm.keys() 742 742 .anyMatch(k -> keyPattern.matcher(k).find() && valuePattern.matcher(osm.get(k)).find()); 743 743 } … … 760 760 mv = osm.get(key); 761 761 if (!caseSensitive && mv == null) { 762 mv = osm.key Set().stream().filter(key::equalsIgnoreCase).findFirst().map(osm::get).orElse(null);762 mv = osm.keys().filter(key::equalsIgnoreCase).findFirst().map(osm::get).orElse(null); 763 763 } 764 764 } … … 972 972 case ANY_VALUE_REGEXP: 973 973 case EXACT_REGEXP: 974 return osm.key Set().stream().anyMatch(k -> keyPattern.matcher(k).matches()974 return osm.keys().anyMatch(k -> keyPattern.matcher(k).matches() 975 975 && (mode == Mode.ANY_VALUE_REGEXP || valuePattern.matcher(osm.get(k)).matches())); 976 976 case MISSING_KEY_REGEXP: 977 return osm.key Set().stream().noneMatch(k -> keyPattern.matcher(k).matches());977 return osm.keys().noneMatch(k -> keyPattern.matcher(k).matches()); 978 978 } 979 979 throw new AssertionError("Missed state"); -
trunk/src/org/openstreetmap/josm/data/validation/tests/Lanes.java
r16198 r17584 42 42 protected void checkNumberOfLanesByKey(final OsmPrimitive p, String lanesKey, String message) { 43 43 final Set<Integer> lanesCount = 44 p.key Set().stream()44 p.keys() 45 45 .filter(x -> x.endsWith(":" + lanesKey)) 46 46 .filter(x -> !Arrays.asList(BLACKLIST).contains(x)) -
trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
r17501 r17584 690 690 691 691 private void checkMultipolygonTags(OsmPrimitive p) { 692 if (p.isAnnotated() || p.key Set().stream()692 if (p.isAnnotated() || p.keys() 693 693 .anyMatch(k -> k.matches("^(abandoned|construction|demolished|disused|planned|razed|removed|was).*"))) 694 694 return; -
trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeModel.java
r17340 r17584 8 8 import java.util.List; 9 9 import java.util.Set; 10 import java.util.stream.Collectors; 10 11 import java.util.stream.IntStream; 12 import java.util.stream.Stream; 11 13 12 14 import javax.swing.table.DefaultTableModel; … … 101 103 public void populate(OsmPrimitive my, OsmPrimitive their) { 102 104 tagMergeItems.clear(); 103 Set<String> keys = new HashSet<>(); 104 keys.addAll(my.keySet()); 105 keys.addAll(their.keySet()); 105 Set<String> keys = Stream.concat(my.keys(), their.keys()).collect(Collectors.toSet()); 106 106 for (String key : keys) { 107 107 String myValue = my.get(key); -
trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
r17440 r17584 832 832 833 833 private static boolean containsOnlyGpxTags(Tagged t) { 834 return t. getKeys().keySet().stream()834 return t.keys() 835 835 .allMatch(key -> GpxConstants.WPT_KEYS.contains(key) || key.startsWith(GpxConstants.GPX_PREFIX)); 836 836 } -
trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
r16626 r17584 556 556 return e.osm.isKeyFalse(label) ^ negateResult; 557 557 case REGEX: 558 return e.osm.key Set().stream().anyMatch(containsPattern) ^ negateResult;558 return e.osm.keys().anyMatch(containsPattern) ^ negateResult; 559 559 default: 560 560 return e.osm.hasKey(label) ^ negateResult; … … 580 580 String key = label; 581 581 if (KeyMatchType.REGEX == matchType) { 582 key = p.key Set().stream().filter(containsPattern).findAny().orElse(key);582 key = p.keys().filter(containsPattern).findAny().orElse(key); 583 583 } 584 584 return new Tag(key, p.get(key)); -
trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveKeyHandlingTest.java
r17275 r17584 163 163 assertEquals(expectedSize, p.getKeys().size()); 164 164 assertEquals(expectedSize, p.keySet().size()); 165 assertEquals(expectedSize, p.keys().count()); 165 166 assertEquals(expectedSize, p.getKeys().entrySet().size()); 166 167 assertEquals(expectedSize, p.getKeys().keySet().size());
Note:
See TracChangeset
for help on using the changeset viewer.