if (r.isElseFilter()) { elseRuleList.add(r); } else {
public RuleBuilder reset(Rule rule) { if (rule == null) { return unset(); } name = rule.getName(); title = rule.getTitle(); ruleAbstract = rule.getAbstract(); minScaleDenominator = rule.getMinScaleDenominator(); maxScaleDenominator = rule.getMaxScaleDenominator(); filter = rule.getFilter(); elseFilter = rule.isElseFilter(); symbolizers.clear(); symbolizers.addAll(rule.symbolizers()); // TODO: unpack into builders in order to "copy" symbolizerBuilder = null; unset = false; legend.reset(rule.getLegend()); return this; }
copy.setName(rule.getName()); copy.setFilter(filterCopy); copy.setElseFilter(rule.isElseFilter()); copy.setMaxScaleDenominator(rule.getMaxScaleDenominator()); copy.setMinScaleDenominator(rule.getMinScaleDenominator());
@Override public void visit(FeatureTypeStyle fts) { for(Rule rule : fts.rules()) { if(rule.isElseFilter()) { filters.add(Filter.INCLUDE); } else { Filter filter = rule.getFilter(); if(filter == null) { filters.add(Filter.INCLUDE); } else { filters.add(filter); } } } }
private static List<Rule>[] splitRules(final FeatureTypeStyle fts, final double scaleDenominator) { List<Rule> ruleList = new ArrayList<Rule>(); List<Rule> elseRuleList = new ArrayList<Rule>(); ruleList = new ArrayList<>(); elseRuleList = new ArrayList<>(); for (Rule r : fts.rules()) { if (isWithInScale(r, scaleDenominator)) { if (r.isElseFilter()) { elseRuleList.add(r); } else { ruleList.add(r); } } } @SuppressWarnings("unchecked") List<Rule>[] ret = new List[] { ruleList, elseRuleList }; return ret; }
private static List<Rule>[] splitRules( final FeatureTypeStyle fts, final double scaleDenominator) { List<Rule> ruleList = new ArrayList<Rule>(); List<Rule> elseRuleList = new ArrayList<Rule>(); ruleList = new ArrayList<>(); elseRuleList = new ArrayList<>(); for (Rule r : fts.rules()) { if (isWithInScale(r, scaleDenominator)) { if (r.isElseFilter()) { elseRuleList.add(r); } else { ruleList.add(r); } } } @SuppressWarnings("unchecked") List<Rule>[] ret = new List[] {ruleList, elseRuleList}; return ret; }
private List[] splitRules(FeatureTypeStyle fts) { Rule[] rules; List<Rule> ruleList = new ArrayList<Rule>(); List<Rule> elseRuleList = new ArrayList<Rule>(); rules = fts.getRules(); ruleList = new ArrayList(); elseRuleList = new ArrayList(); for (int j = 0; j < rules.length; j++) { // getting rule Rule r = rules[j]; if (isWithInScale(r)) { if (r.isElseFilter()) { elseRuleList.add(r); } else { ruleList.add(r); } } } return new List[] {ruleList, elseRuleList}; }
String.format("${%s}", escapeForEmbededCQL(ECQL.toCQL(rule.getFilter())))); if (rule.isElseFilter()) { put("else", true);
static List<List<MiniRule>> minify(Style style) { List<List<MiniRule>> ftStyles = new ArrayList<List<MiniRule>>(); for (FeatureTypeStyle ftStyle : style.featureTypeStyles()) { List<MiniRule> rules = new ArrayList<MiniRule>(); for (Rule rule : ftStyle.rules()) { List<PointSymbolizer> pointSymbolizers = new ArrayList<PointSymbolizer>(); for (Symbolizer symbolizer : rule.symbolizers()) { if (symbolizer instanceof PointSymbolizer) { pointSymbolizers.add((PointSymbolizer) symbolizer); } } if (!pointSymbolizers.isEmpty()) rules.add(new MiniRule(rule.getFilter(), rule.isElseFilter(), pointSymbolizers)); } if (!rules.isEmpty()) { ftStyles.add(rules); } } return ftStyles; }
protected org.geoserver.wms.GetMapOutputFormat getDelegate(String outputFormat) throws ServiceException { return new FeatureRenderSpyFormat( wms, f -> { boolean matched = false; for (Rule rule : rules) { if (rule.isElseFilter()) { if (!matched) { AtomicInteger counter = counters.get(rule); counter.incrementAndGet(); } } else if (rule.getFilter() == null || rule.getFilter().evaluate(f)) { AtomicInteger counter = counters.get(rule); counter.incrementAndGet(); matched = true; if (matchFirst) { break; } } } }); }; };
@Override public void visit(Rule rule) { if (rule.isElseFilter()) { elseSymbolizers.addAll(rule.symbolizers()); } else if (rule.getFilter() == null || rule.getFilter().evaluate(sf)) { symbolizers.addAll(rule.symbolizers()); } }
private Filter buildRulesFilter(org.opengis.filter.FilterFactory ff, List<Rule> rules) { // build up a or of all the rule filters List<Filter> filters = new ArrayList<Filter>(); for (Rule rule : rules) { if (rule.getFilter() == null || rule.isElseFilter()) return Filter.INCLUDE; filters.add(rule.getFilter()); } // not or and and simplify (if there is any include/exclude we'll get // a very simple result ;-) Filter or = ff.or(filters); SimplifyingFilterVisitor simplifier = new SimplifyingFilterVisitor(); return (Filter) or.accept(simplifier, null); }
if (rule.isElseFilter()) { start("ElseFilter"); end("ElseFilter");
if (r.isElseFilter()) { elseRuleList.add(r); } else {
List<Rule> elseRuleList = new ArrayList<Rule>(); for (Rule rule : fts.rules()) { if (rule.isElseFilter()) { elseRuleList.add(rule); } else {
rule.getName(), filterCopy, rule.isElseFilter(), rule.getMaxScaleDenominator(), rule.getMinScaleDenominator());
Filter filterCopy = null; copy.setFilter(filterCopy); copy.setElseFilter(rule.isElseFilter());
copy.setName(rule.getName()); copy.setFilter(filterCopy); copy.setElseFilter(rule.isElseFilter()); copy.setMaxScaleDenominator(rule.getMaxScaleDenominator()); copy.setMinScaleDenominator(rule.getMinScaleDenominator());
@Override protected void encode(Rule rule) { put("name", rule.getName()); put("title", rule.getTitle()); put("abstract", rule.getAbstract()); if (rule.getFilter() != null && rule.getFilter() != Filter.INCLUDE) { put( "filter", String.format("${%s}", escapeForEmbededCQL(ECQL.toCQL(rule.getFilter())))); } if (rule.isElseFilter()) { put("else", true); } Tuple t = Tuple.of( toStringOrNull(rule.getMinScaleDenominator(), "min"), toStringOrNull(rule.getMaxScaleDenominator(), "max")); if (!t.isNull()) { put("scale", t); } // legend:? put("symbolizers", new SymbolizersEncoder(rule)); }
if (rule.isElseFilter()) { start("ElseFilter"); end("ElseFilter");