no more Rule stack optimization
- the modified xml schema allows write proper rules :)
This commit is contained in:
parent
dc70104676
commit
1f1675f188
@ -68,7 +68,7 @@ public class ThemeBuilder {
|
|||||||
|
|
||||||
public RuleBuilder pushParse(String keys, String values) {
|
public RuleBuilder pushParse(String keys, String values) {
|
||||||
|
|
||||||
return RuleBuilder.create(mRuleStack, keys, values)
|
return RuleBuilder.create(keys, values)
|
||||||
.zoom(~0)
|
.zoom(~0)
|
||||||
.element(Element.ANY);
|
.element(Element.ANY);
|
||||||
}
|
}
|
||||||
|
@ -348,7 +348,7 @@ public class XmlThemeBuilder extends DefaultHandler {
|
|||||||
if (zoomMin > zoomMax)
|
if (zoomMin > zoomMax)
|
||||||
throw new ThemeException("zoom-min must be less or equal zoom-max: " + zoomMin);
|
throw new ThemeException("zoom-min must be less or equal zoom-max: " + zoomMin);
|
||||||
|
|
||||||
RuleBuilder b = RuleBuilder.create(ruleStack, keys, values);
|
RuleBuilder b = RuleBuilder.create(keys, values);
|
||||||
b.setZoom(zoomMin, zoomMax);
|
b.setZoom(zoomMin, zoomMax);
|
||||||
b.element(element);
|
b.element(element);
|
||||||
b.select(selector);
|
b.select(selector);
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package org.oscim.theme.rule;
|
package org.oscim.theme.rule;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Stack;
|
|
||||||
|
|
||||||
import org.oscim.theme.IRenderTheme.ThemeException;
|
import org.oscim.theme.IRenderTheme.ThemeException;
|
||||||
import org.oscim.theme.rule.Rule.Element;
|
import org.oscim.theme.rule.Rule.Element;
|
||||||
@ -70,7 +69,7 @@ public class RuleBuilder {
|
|||||||
this.values = EMPTY_KV;
|
this.values = EMPTY_KV;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RuleBuilder create(Stack<RuleBuilder> ruleStack, String keys, String values) {
|
public static RuleBuilder create(String keys, String values) {
|
||||||
|
|
||||||
String[] keyList = EMPTY_KV;
|
String[] keyList = EMPTY_KV;
|
||||||
String[] valueList = EMPTY_KV;
|
String[] valueList = EMPTY_KV;
|
||||||
@ -151,15 +150,13 @@ public class RuleBuilder {
|
|||||||
return new NegativeRule(type, element, zoom, selector,
|
return new NegativeRule(type, element, zoom, selector,
|
||||||
keys, values, rules, styles);
|
keys, values, rules, styles);
|
||||||
|
|
||||||
if (numKeys == 1 && numKeys == 0) {
|
if (numKeys == 1 && numKeys == 0)
|
||||||
return new PositiveRuleK(element, zoom, selector, keys[0],
|
return new PositiveRuleK(element, zoom, selector, keys[0],
|
||||||
rules, styles);
|
rules, styles);
|
||||||
}
|
|
||||||
|
|
||||||
if (numKeys == 0 && numVals == 1) {
|
if (numKeys == 0 && numVals == 1)
|
||||||
return new PositiveRuleV(element, zoom, selector, values[0],
|
return new PositiveRuleV(element, zoom, selector, values[0],
|
||||||
rules, styles);
|
rules, styles);
|
||||||
}
|
|
||||||
|
|
||||||
if (numKeys == 1 && numVals == 1)
|
if (numKeys == 1 && numVals == 1)
|
||||||
return new PositiveRuleKV(element, zoom, selector,
|
return new PositiveRuleKV(element, zoom, selector,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user