Changeset 17780 in josm
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java
r17769 r17780 56 56 57 57 static Factory ofNumberVarArgs(double identity, DoubleUnaryOperator unaryOperator, DoubleBinaryOperator operator) { 58 return args -> env -> args.isEmpty() 59 ? identity 60 : args.size() == 1 61 ? unaryOperator.applyAsDouble(Cascade.convertTo(args.get(0).evaluate(env), Double.class)) 62 : args.stream() 63 .map(arg -> Cascade.convertTo(arg.evaluate(env), Double.class)) 64 .filter(Objects::nonNull) 65 .reduce(operator::applyAsDouble) 66 .orElse(null); 58 return args -> env -> { 59 if (args.isEmpty()) { 60 return identity; 61 } else if (args.size() == 1) { 62 return unaryOperator.applyAsDouble(Cascade.convertTo(args.get(0).evaluate(env), Double.class)); 63 } else { 64 return args.stream() 65 .map(arg -> Cascade.convertTo(arg.evaluate(env), Double.class)) 66 .filter(Objects::nonNull) 67 .reduce(operator::applyAsDouble).orElse(null); 68 } 69 }; 67 70 } 68 71 -
trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.java
r17770 r17780 613 613 "neg: -13;" + 614 614 "not: !0;" + 615 "null1: tag(x1) + tag(x2);" + 616 "null2: 3 + tag(does_not_exist) + 5;" + 615 617 "}"); 616 618 source.loadStyleSource(); … … 623 625 assertEquals(-13.0, mc.getCascade(null).get("neg")); 624 626 assertEquals(true, mc.getCascade(null).get("not")); 627 assertNull(mc.getCascade(null).get("null1")); 628 assertEquals(8.0, mc.getCascade(null).get("null2")); 625 629 } 626 630
Note:
See TracChangeset
for help on using the changeset viewer.