no more Rule stack optimization

- the modified xml schema allows write proper rules :)
This commit is contained in:
Hannes Janetzek 2014-03-31 15:30:53 +02:00
parent dc70104676
commit 1f1675f188
3 changed files with 5 additions and 8 deletions

View File

@ -68,7 +68,7 @@ public class ThemeBuilder {
public RuleBuilder pushParse(String keys, String values) {
return RuleBuilder.create(mRuleStack, keys, values)
return RuleBuilder.create(keys, values)
.zoom(~0)
.element(Element.ANY);
}

View File

@ -348,7 +348,7 @@ public class XmlThemeBuilder extends DefaultHandler {
if (zoomMin > zoomMax)
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.element(element);
b.select(selector);

View File

@ -1,7 +1,6 @@
package org.oscim.theme.rule;
import java.util.ArrayList;
import java.util.Stack;
import org.oscim.theme.IRenderTheme.ThemeException;
import org.oscim.theme.rule.Rule.Element;
@ -70,7 +69,7 @@ public class RuleBuilder {
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[] valueList = EMPTY_KV;
@ -151,15 +150,13 @@ public class RuleBuilder {
return new NegativeRule(type, element, zoom, selector,
keys, values, rules, styles);
if (numKeys == 1 && numKeys == 0) {
if (numKeys == 1 && numKeys == 0)
return new PositiveRuleK(element, zoom, selector, keys[0],
rules, styles);
}
if (numKeys == 0 && numVals == 1) {
if (numKeys == 0 && numVals == 1)
return new PositiveRuleV(element, zoom, selector, values[0],
rules, styles);
}
if (numKeys == 1 && numVals == 1)
return new PositiveRuleKV(element, zoom, selector,