public RuleImpl rule( String name, Description description, GraphicLegend legend, double min, double max, List<org.opengis.style.Symbolizer> symbolizers, Filter filter) { RuleImpl rule = new RuleImpl(); rule.setName(name); rule.setDescription(description); rule.setLegend(legend); rule.setMinScaleDenominator(min); rule.setMaxScaleDenominator(max); if (symbolizers != null) { for (org.opengis.style.Symbolizer symbolizer : symbolizers) { rule.symbolizers().add(cast(symbolizer)); } } if (filter != null) { rule.setFilter(filter); rule.setElseFilter(false); } else { rule.setElseFilter(true); } return rule; }
private RuleImpl buildDynamicGeometryRule( Rule base, Expression geom, Symbolizer symbolizer, String... geometryTypes) { List<Filter> typeChecks = new ArrayList<>(); for (String geometryType : geometryTypes) { typeChecks.add( ff.equal(ff.function("geometryType", geom), ff.literal(geometryType), false)); } Filter geomCheck = ff.or(typeChecks); Filter ruleFilter = base.getFilter(); Filter filter = ruleFilter == null || ruleFilter == Filter.INCLUDE ? geomCheck : ff.and(geomCheck, ruleFilter); RuleImpl extra = new RuleImpl(base); extra.setFilter(filter); extra.symbolizers().clear(); extra.symbolizers().add(symbolizer); return extra; }
public RuleImpl rule(String name, Description description, GraphicLegend legend, double min, double max, List<org.opengis.style.Symbolizer> symbolizers, Filter filter) { RuleImpl rule = new RuleImpl(); rule.setName(name); rule.setDescription(description); rule.setLegend(legend); rule.setMinScaleDenominator(min); rule.setMaxScaleDenominator(max); if( symbolizers != null ){ for (org.opengis.style.Symbolizer symbolizer : symbolizers) { rule.symbolizers().add( cast( symbolizer ) ); } } if( filter != null){ rule.setFilter( filter ); rule.setElseFilter(false); } else { rule.setElseFilter(true); } return rule; }