public void startSelector(SelectorList selectors) throws CSSException { CssRule r; if (nextSelectorCreatesRule) { r = new CssRule(); addNode(r); currentRule = r; } else { r = (CssRule) currentRule; nextSelectorCreatesRule = true; } for (int i = 0; i < selectors.getLength(); i++) { r.getSelectors().add(new CssSelector(valueOf(selectors.item(i)))); } }
public static TagComponent selectorToExpression(String selector) { W3cCssSelectorListWithMap cssParsedSelectors = W3cCssSelectorWithMapParser.parseSelector(selector); SelectorList selectorList = cssParsedSelectors.getSelectorList(); return XPathComponentCompilerService.compileSelector(cssParsedSelectors.getArgumentMap(), selectorList.item(0)); }
@Test public void testConditionToXPath() { W3cCssSelectorListWithMap w3cCssSelectorListWithMap = W3cCssSelectorWithMapParser.parseSelector("#idz"); SelectorList selectorList = w3cCssSelectorListWithMap.getSelectorList(); Selector selector = selectorList.item(0); CssSelector<Selector, TagComponent> cssSelector = CssSelectorFactory.parsedSelectorToCssSelector(selector); TagComponent tagComponent = cssSelector.toXPath(w3cCssSelectorListWithMap.getArgumentMap(), selector); assertThat(tagComponent.toXPath(), Matchers.is("(.//*[@id = 'idz'])")); assertThat(tagComponent.toXPathCondition(), Matchers.is("@id = 'idz'")); }
@Test public void testConditionToXPath() { W3cCssSelectorListWithMap w3cCssSelectorListWithMap = W3cCssSelectorWithMapParser.parseSelector("span.a.b"); SelectorList selectorList = w3cCssSelectorListWithMap.getSelectorList(); ConditionalSelector selector = (ConditionalSelector) selectorList.item(0); ArgumentMap argumentMap = w3cCssSelectorListWithMap.getArgumentMap(); SimpleSelector simpleSelector = selector.getSimpleSelector(); TagComponent spanTagComponent = XPathComponentCompilerService.compileSelector(argumentMap, simpleSelector); CombinatorCondition combinatorCondition = (CombinatorCondition) selector.getCondition(); ConditionComponent compiledCondition = andConditionalCssSelector.conditionToXPath(argumentMap, simpleSelector, combinatorCondition); TagComponent cs = spanTagComponent.cloneAndCombineTo(compiledCondition); assertThat(cs.toXPath(), is("(.//*[self::span and contains(concat(' ', normalize-space(@class), ' '), ' a ') and contains(concat(' ', normalize-space(@class), ' '), ' b ')])")); assertThat(cs.toXPathCondition(), is("local-name() = 'span' and contains(concat(' ', normalize-space(@class), ' '), ' a ') and contains(concat(' ', normalize-space(@class), ' '), ' b ')")); }
public static String toString(SelectorList selectorList) { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < selectorList.getLength(); i++) { String selectorString = toString(selectorList.item(i)); stringBuilder.append(selectorString); if (selectorList.getLength() > i + 1) { stringBuilder.append(", "); } } return stringBuilder.toString(); }
private static String toString( SelectorList patterns ) { StringBuilder buffer = new StringBuilder(); buffer.append( "[" ); int length = patterns.getLength(); for( int i = 0; i < length; i++ ) { buffer.append( " " ); Selector selector = patterns.item( i ); buffer.append( selector.toString() ); } buffer.append( " ]" ); return buffer.toString(); }
private List<W3cCssSelectorWithMap> createParsedSelectorList() { List<W3cCssSelectorWithMap> w3cCssSelectorWithMapList = new LinkedList<>(); for (int i = 0; i < selectorList.getLength(); i++) { W3cCssSelectorWithMap w3cCssSelectorWithMap = new W3cCssSelectorWithMap(selectorList.item(i), this.argumentMap); w3cCssSelectorWithMapList.add(w3cCssSelectorWithMap); } return w3cCssSelectorWithMapList; }
private List<W3cCssSelectorWithMap> createParsedSelectorList() { List<W3cCssSelectorWithMap> w3cCssSelectorWithMapList = new LinkedList<>(); for (int i = 0; i < selectorList.getLength(); i++) { W3cCssSelectorWithMap w3cCssSelectorWithMap = new W3cCssSelectorWithMap(selectorList.item(i), this.argumentMap); w3cCssSelectorWithMapList.add(w3cCssSelectorWithMap); } return w3cCssSelectorWithMapList; }
/** * Returns a printable representation of this style rule. */ public String toString(CSSEngine eng) { StringBuffer sb = new StringBuffer(); if (selectorList != null) { sb.append(selectorList.item(0)); for (int i = 1; i < selectorList.getLength(); i++) { sb.append(", "); sb.append(selectorList.item(i)); } } sb.append(" {\n"); if (styleDeclaration != null) { sb.append(styleDeclaration.toString(eng)); } sb.append("}\n"); return sb.toString(); } }
public static SelectorList createNewSelectorListFromAnOldOneWithSomPartReplaced( SelectorList oldList, String toBeReplacedSelectorName, SelectorList candidateSelectorList) throws Exception { if (candidateSelectorList.getLength() != 1) { throw new Exception("Candidate selector should not be a list"); } if (!(candidateSelectorList.item(0) instanceof SimpleSelector)) { throw new Exception( "Candidate selector should only be a SimpleSelector"); } SelectorListImpl newSelectorList = new SelectorListImpl(); SimpleSelector candidateSelector = (SimpleSelector) candidateSelectorList .item(0); for (int i = 0; i < oldList.getLength(); i++) { Selector selector = oldList.item(i); newSelectorList.addSelector(createSelectorWithSomePartReplaced( selector, toBeReplacedSelectorName, candidateSelector)); } return newSelectorList; }
/** * Returns a printable representation of this style rule. */ public String toString(CSSEngine eng) { StringBuffer sb = new StringBuffer(); if (selectorList != null) { sb.append(selectorList.item(0)); for (int i = 1; i < selectorList.getLength(); i++) { sb.append(", "); sb.append(selectorList.item(i)); } } sb.append(" {\n"); if (styleDeclaration != null) { sb.append(styleDeclaration.toString(eng)); } sb.append("}\n"); return sb.toString(); } }
/** * Returns a printable representation of this style rule. */ public String toString(CSSEngine eng) { StringBuffer sb = new StringBuffer(); if (selectorList != null) { sb.append(selectorList.item(0)); for (int i = 1; i < selectorList.getLength(); i++) { sb.append(", "); sb.append(selectorList.item(i)); } } sb.append(" {\n"); if (styleDeclaration != null) { sb.append(styleDeclaration.toString(eng)); } sb.append("}\n"); return sb.toString(); } }
private void createSelectorWrappers() { List<SelectorWrapper> selectorWrappersList = new LinkedList<>(); for( int pos = 0; pos < styleRules.length; pos++ ) { StyleRule styleRule = styleRules[ pos ]; SelectorList selectors = styleRule.getSelectors(); StylePropertyMap properties = styleRule.getProperties(); int length = selectors.getLength(); for( int i = 0; i < length; i++ ) { Selector selector = selectors.item( i ); SelectorWrapper selectorWrapper = new SelectorWrapper( selector, properties, pos ); selectorWrappersList.add( selectorWrapper ); } } Collections.sort( selectorWrappersList, COMPARATOR ); Collections.reverse( selectorWrappersList ); selectorWrappers = new SelectorWrapper[ selectorWrappersList.size() ]; selectorWrappersList.toArray( selectorWrappers ); }
@Override public String toString() { StringBuilder buffer = new StringBuilder(); StyleRule[] styleRules = getStyleRules(); for( int i = 0; i < styleRules.length; i++ ) { StyleRule styleRule = styleRules[ i ]; SelectorList selectors = styleRule.getSelectors(); int length = selectors.getLength(); for( int j = 0; j < length; j++ ) { if( j > 0 ) { buffer.append( "," ); } if( i > 0 ) { buffer.append( "\n" ); } buffer.append( selectors.item( j ) ); } buffer.append( "\n" ); buffer.append( styleRule.getProperties() ); buffer.append( "\n" ); } return buffer.toString(); }
public void property(String name, LexicalUnit value, boolean important) throws CSSException { CSSProperty property = new CSSProperty(name.intern(), value, important); SACMediaList mediaList = getCurrentMedia(); int selectorCount = curSelectors.getLength(); for(int i = 0; i < selectorCount; i++) { ExtendedSelector selector = (ExtendedSelector)curSelectors.item(i); stylesheet.addRule(new CSSRule(selector, property, mediaList)); } }
public void startSelector(SelectorList selectors) throws CSSException { CssRule r; if (nextSelectorCreatesRule) { r = new CssRule(); addNode(r); currentRule = r; } else { r = (CssRule) currentRule; nextSelectorCreatesRule = true; } for (int i = 0; i < selectors.getLength(); i++) { r.getSelectors().add(new CssSelector(valueOf(selectors.item(i)))); } }