- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 12 Feb 2009 21:26:38 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/selectors
In directory hutz:/tmp/cvs-serv1130/org/w3c/css/selectors
Modified Files:
PseudoFactory.java PseudoFunctionSelector.java
Log Message:
pseudo-function handling, per CSS3 selectors rules (note that some construction
forbidden by the text are ok according to the grammar, so extra checks are needed)
Initial support of namespaces.
Index: PseudoFunctionSelector.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/selectors/PseudoFunctionSelector.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- PseudoFunctionSelector.java 14 Sep 2005 15:15:32 -0000 1.2
+++ PseudoFunctionSelector.java 12 Feb 2009 21:26:35 -0000 1.3
@@ -12,7 +12,7 @@
private String name;
private Object param;
-
+ private String representation = null;
/**
* Creates a new empty function selector
*/
@@ -70,6 +70,15 @@
* @see Selector#toString()
*/
public String toString() {
- return ":" + name + "(" + param + ")";
+ if (representation == null) {
+ StringBuffer sb = new StringBuffer();
+ sb.append(':');
+ sb.append(name);
+ sb.append('(');
+ sb.append(param);
+ sb.append(')');
+ representation = sb.toString();
+ }
+ return representation;
}
}
Index: PseudoFactory.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/selectors/PseudoFactory.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- PseudoFactory.java 12 Feb 2009 10:55:34 -0000 1.6
+++ PseudoFactory.java 12 Feb 2009 21:26:35 -0000 1.7
@@ -4,6 +4,17 @@
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.selectors;
+import org.w3c.css.util.ApplContext;
+import org.w3c.css.util.InvalidParamException;
+
+import org.w3c.css.selectors.pseudofunctions.PseudoFunctionContains;
+import org.w3c.css.selectors.pseudofunctions.PseudoFunctionLang;
+import org.w3c.css.selectors.pseudofunctions.PseudoFunctionNot;
+import org.w3c.css.selectors.pseudofunctions.PseudoFunctionNthChild;
+import org.w3c.css.selectors.pseudofunctions.PseudoFunctionNthLastChild;
+import org.w3c.css.selectors.pseudofunctions.PseudoFunctionNthOfType;
+import org.w3c.css.selectors.pseudofunctions.PseudoFunctionNthLastOfType;
+
/**
* PseudoFactory<br />
* Created: Sep 2, 2005 2:41:09 PM<br />
@@ -142,5 +153,44 @@
}
return null;
}
-
+
+ /**
+ * Returns a PseudoFunctionSelector based on the name of the
+ * selector
+ * @param name, the name of the pseudofun selector
+ * @param value, its value
+ * @throws InvalidParamException
+ */
+ public static PseudoFunctionSelector newPseudoFunction(String name,
+ String value, ApplContext ac)
+ throws InvalidParamException
+ {
+ if (name == null) {
+ throw new InvalidParamException("pseudo",
+ "null pseudofunction", ac);
+ }
+ if (name.equals("lang")) {
+ return new PseudoFunctionLang(name, value);
+ }
+ if (name.equals("not")) {
+ return new PseudoFunctionNot(name, value);
+ }
+ if (name.equals("contains")) {
+ return new PseudoFunctionContains(name, value);
+ }
+ if (name.equals("nth-child")) {
+ return new PseudoFunctionNthChild(name, value);
+ }
+ if (name.equals("nth-last-child")) {
+ return new PseudoFunctionNthLastChild(name, value);
+ }
+ if (name.equals("nth-of-type")) {
+ return new PseudoFunctionNthOfType(name, value);
+ }
+ if (name.equals("nth-last-of-type")) {
+ return new PseudoFunctionNthLastOfType(name, value);
+ }
+ throw new InvalidParamException("pseudo",
+ ":"+name, ac);
+ }
}
Received on Thursday, 12 February 2009 21:26:48 UTC