/** * Returns true if the text consists of one ID selector. * * "#ID" -> true "H1#myID" -> false "#abc{}" -> false */ public boolean isID() { ICSSSimpleSelector selector = getOnlyOneSimpleSelector(); if (selector != null) { return (selector.getName().length() == 0 && selector.getNumOfAttributes() == 0 && selector.getNumOfClasses() == 0 && selector.getNumOfIDs() == 1 && selector.getNumOfPseudoNames() == 0); } return false; }
i = selector.getNumOfPseudoNames(); if (i > 0) { if (pseudoName == null || pseudoName.length() == 0) return false; for (i = i - 1; i >= 0; i--) { if (pseudoName.equalsIgnoreCase(selector.getPseudoName(i))) { break; if (!selector.isUniversal() && !element.getNodeName().equalsIgnoreCase(selector.getName())) return false; i = selector.getNumOfIDs(); if (i > 0) { if (i > 1) if (key == null) return false; if (!selector.getID(0).equals(key)) return false; i = selector.getNumOfClasses(); if (i > 0) { key = element.getAttribute("class");//$NON-NLS-1$ boolean ok = false; while (tokenizer.hasMoreTokens()) { if (selector.getClass(i).equals(tokenizer.nextToken())) { ok = true; break;
public Iterator getErrors() { if (fNameErrors == null) { fNameErrors = new ArrayList(); Iterator iItem = getIterator(); while (iItem.hasNext()) { ICSSSelectorItem item = (ICSSSelectorItem) iItem.next(); if (item instanceof ICSSSimpleSelector) { if (!((ICSSSimpleSelector) item).isUniversal()) { String name = ((ICSSSimpleSelector) item).getName(); if (!NameValidator.isValid(name)) { fNameErrors.add(item); } } } } } List errors = new ArrayList(fParseErrors); errors.addAll(fNameErrors); return errors.iterator(); }
/** * */ private void addClassNames(ICSSStyleRule rule) { ICSSSelectorList selectorList = rule.getSelectors(); Iterator iSelector = selectorList.getIterator(); while (iSelector.hasNext()) { ICSSSelector selector = (ICSSSelector) iSelector.next(); Iterator iItem = selector.getIterator(); while (iItem.hasNext()) { ICSSSelectorItem item = (ICSSSelectorItem) iItem.next(); if (item.getItemType() == ICSSSelectorItem.SIMPLE) { ICSSSimpleSelector sel = (ICSSSimpleSelector) item; int nClasses = sel.getNumOfClasses(); for (int iClass = 0; iClass < nClasses; iClass++) { String className = sel.getClass(iClass); if (!fClassNames.contains(className)) fClassNames.add(className); } } } } }
if (!selector.isUniversal() && !element.getNodeName().equals(selector.getName())) return false; i = selector.getNumOfIDs(); if (i > 0) { if (i > 1) if (key == null) return false; if (!selector.getID(0).equals(key)) return false; i = selector.getNumOfClasses(); if (i > 0) { key = element.getAttribute("class");//$NON-NLS-1$ boolean ok = false; while (tokenizer.hasMoreTokens()) { if (selector.getClass(i).equals(tokenizer.nextToken())) { ok = true; break; for (i = selector.getNumOfAttributes() - 1; i >= 0; i--) { StringTokenizer tokenizer = new StringTokenizer(selector.getAttribute(i), "=~| \t\r\n\f");//$NON-NLS-1$ int countTokens = tokenizer.countTokens(); if (countTokens > 0) {
/** * Returns true if the text consists of one CLASS selector. syntax check * is a little loose (.123 is passed) * * ".class" -> true ".123" -> true ".class , .class2" -> false * ".class.class2" -> false ".123{}" -> false */ public boolean isClass() { ICSSSimpleSelector selector = getOnlyOneSimpleSelector(); if (selector != null) { return (selector.getName().length() == 0 && selector.getNumOfAttributes() == 0 && selector.getNumOfClasses() == 1 && selector.getNumOfIDs() == 0 && selector.getNumOfPseudoNames() == 0); } return false; }