- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 29 Aug 2011 07:21:02 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/parser
In directory hutz:/tmp/cvs-serv18238/css/parser
Modified Files:
AtRulePage.java CssFouffa.java CssParseException.java
CssPropertyFactory.java CssValidatorListener.java Frame.java
Log Message:
genericity + updated code to 5.0 stds
Index: Frame.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/Frame.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- Frame.java 14 Feb 2009 09:05:03 -0000 1.11
+++ Frame.java 29 Aug 2011 07:21:00 -0000 1.12
@@ -16,7 +16,7 @@
*/
public class Frame {
- public ApplContext ac;
+ public ApplContext ac;
private Errors errors;
private Warnings warnings;
private CssFouffa cssFouffa;
@@ -31,10 +31,10 @@
* @param sourceFile The name of the source file.
*/
public Frame(CssFouffa cssFouffa, String sourceFile, int warningLevel) {
- this.sourceFile = sourceFile;
- this.cssFouffa = cssFouffa;
- errors = new Errors();
- warnings = new Warnings(warningLevel);
+ this.sourceFile = sourceFile;
+ this.cssFouffa = cssFouffa;
+ errors = new Errors();
+ warnings = new Warnings(warningLevel);
}
/**
@@ -45,10 +45,9 @@
* @param beginLine The begin line
*/
public Frame(CssFouffa cssFouffa, String sourceFile, int beginLine,
- int warningLevel)
- {
- this(cssFouffa, sourceFile, warningLevel);
- line = beginLine;
+ int warningLevel) {
+ this(cssFouffa, sourceFile, warningLevel);
+ line = beginLine;
}
/**
@@ -57,16 +56,16 @@
* @param error The new error.
*/
public void addError(CssError error) {
- error.sourceFile = getSourceFile();
- error.line = getLine();
- errors.addError(error);
+ error.sourceFile = getSourceFile();
+ error.line = getLine();
+ errors.addError(error);
}
/**
* Returns all errors.
*/
public Errors getErrors() {
- return errors;
+ return errors;
}
/**
@@ -74,11 +73,11 @@
*
* @param warningMessage the warning message
* (see org.w3c.css.util.Messages.properties).
- * @see org.w3c.css.util.Warning
+ * @see org.w3c.css.util.Warning
*/
public void addWarning(String warningMessage) {
- warnings.addWarning(new Warning(getSourceFile(), getLine(),
- warningMessage, 0, ac));
+ warnings.addWarning(new Warning(getSourceFile(), getLine(),
+ warningMessage, 0, ac));
}
/**
@@ -87,12 +86,12 @@
* @param warningMessage the warning message
* (see org.w3c.css.util.Messages.properties).
* @param message An add-on message.
- * @see org.w3c.css.util.Warning
+ * @see org.w3c.css.util.Warning
*/
public void addWarning(String warningMessage, String message) {
- warnings.addWarning(new Warning(getSourceFile(), getLine(),
- warningMessage, 0,
- new String[] { message }, ac));
+ warnings.addWarning(new Warning(getSourceFile(), getLine(),
+ warningMessage, 0,
+ new String[]{message}, ac));
}
/**
@@ -101,40 +100,40 @@
* @param warningMessage the warning message
* (see org.w3c.css.util.Messages.properties).
* @param messages Some add-on messages.
- * @see org.w3c.css.util.Warning
+ * @see org.w3c.css.util.Warning
*/
public void addWarning(String warningMessage, String[] messages) {
- warnings.addWarning(new Warning(getSourceFile(), getLine(),
- warningMessage, 0, messages, ac));
+ warnings.addWarning(new Warning(getSourceFile(), getLine(),
+ warningMessage, 0, messages, ac));
}
/**
* Get all warnings.
*/
public Warnings getWarnings() {
- return warnings;
+ return warnings;
}
/**
* Get the name of the source file.
*/
public String getSourceFile() {
- return sourceFile;
+ return sourceFile;
}
/**
* Get the begin line.
*/
public int getBeginLine() {
- return line;
+ return line;
}
/**
* Get the current line.
*/
public int getLine() {
- //return line; //+ cssFouffa.token.beginLine;
- return line + cssFouffa.token.beginLine;
+ //return line; //+ cssFouffa.token.beginLine;
+ return line + cssFouffa.token.beginLine;
}
/**
@@ -143,8 +142,8 @@
* @param frame The other frame for merging.
*/
public void join(Frame frame) {
- errors.addErrors(frame.errors);
- warnings.addWarnings(frame.warnings);
+ errors.addErrors(frame.errors);
+ warnings.addWarnings(frame.warnings);
}
}
Index: CssPropertyFactory.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/CssPropertyFactory.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- CssPropertyFactory.java 12 Jan 2011 15:01:56 -0000 1.25
+++ CssPropertyFactory.java 29 Aug 2011 07:21:00 -0000 1.26
@@ -11,8 +11,8 @@
import org.w3c.css.properties.css.CssProperty;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
-import org.w3c.css.util.WarningParamException;
import org.w3c.css.util.Utf8Properties;
+import org.w3c.css.util.WarningParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssIdent;
@@ -23,14 +23,14 @@
import java.util.Vector;
/**
- * @version $Revision$
* @author Philippe Le Hegaret
+ * @version $Revision$
*/
public class CssPropertyFactory implements Cloneable {
// all recognized properties are here.
private Utf8Properties properties;
-
+
//all used profiles are here (in the priority order)
private static String[] SORTEDPROFILES = PropertiesLoader.getProfiles();
@@ -40,12 +40,12 @@
// private String usermedium;
public CssPropertyFactory getClone() {
- try {
- return (CssPropertyFactory) clone();
- } catch (CloneNotSupportedException ex) {
- ex.printStackTrace();
- return null;
- }
+ try {
+ return (CssPropertyFactory) clone();
+ } catch (CloneNotSupportedException ex) {
+ ex.printStackTrace();
+ return null;
+ }
}
/**
@@ -63,31 +63,30 @@
* finally { try { if (f_all != null) f_all.close(); } catch (Exception e) {
* e.printStackTrace(); } // ignore } }
*/
-
public CssPropertyFactory(String profile) {
- properties = PropertiesLoader.getProfile(profile);
- // It's not good to have null properties :-/
- if (properties == null) {
- throw new NullPointerException();
- }
+ properties = PropertiesLoader.getProfile(profile);
+ // It's not good to have null properties :-/
+ if (properties == null) {
+ throw new NullPointerException();
+ }
}
public String getProperty(String name) {
- return properties.getProperty(name);
+ return properties.getProperty(name);
}
private Vector<String> getVector(String media) {
- Vector<String> list = new Vector<String>(4);
- String medium = new String();
- StringTokenizer tok = new StringTokenizer(media, ",");
+ Vector<String> list = new Vector<String>(4);
+ String medium = new String();
+ StringTokenizer tok = new StringTokenizer(media, ",");
- while (tok.hasMoreTokens()) {
- medium = tok.nextToken();
- medium = medium.trim();
- list.addElement(medium);
- }
+ while (tok.hasMoreTokens()) {
+ medium = tok.nextToken();
+ medium = medium.trim();
+ list.addElement(medium);
+ }
- return list;
+ return list;
}
// public void setUserMedium(String usermedium) {
@@ -101,176 +100,173 @@
// }
// }
public synchronized CssProperty createMediaFeature(ApplContext ac, AtRule atRule, String property,
- CssExpression expression) throws Exception {
- // String result = "ok";
- String media = atRule.toString();
- int pos = -1;
- int pos2 = media.toUpperCase().indexOf("AND");
-
- if (pos2 == -1) {
- pos2 = media.length();
- }
+ CssExpression expression) throws Exception {
+ // String result = "ok";
+ String media = atRule.toString();
+ String upmedia = media.toUpperCase();
+ int pos = -1;
+ int pos2 = media.toUpperCase().indexOf("AND");
- if (media.toUpperCase().indexOf("NOT") != -1) {
- pos = media.toUpperCase().indexOf("NOT");
- media = media.substring(pos + 4, pos2);
- } else if (media.toUpperCase().indexOf("ONLY") != -1) {
- pos = media.toUpperCase().indexOf("ONLY");
- media = media.substring(pos + 4, pos2);
- } else {
- pos = media.indexOf(" ");
- media = media.substring(pos + 1, pos2);
- }
+ if (pos2 == -1) {
+ pos2 = media.length();
+ }
+ pos = upmedia.indexOf("NOT");
+ if (pos != -1) {
+ media = media.substring(pos + 4, pos2);
+ } else if ((pos = upmedia.indexOf("ONLY")) != -1) {
+ media = media.substring(pos + 4, pos2);
+ } else {
+ pos = media.indexOf(" ");
+ media = media.substring(pos + 1, pos2);
+ }
- media = media.trim();
+ media = media.trim();
- String classname = properties.getProperty("mediafeature" + "." + property);
+ String classname = properties.getProperty("mediafeature" + "." + property);
- if (classname == null) {
- if (atRule instanceof AtRuleMedia && (!media.equals("all"))) {
- // I don't know this property
- throw new InvalidParamException("noexistence-media", property, media, ac);
- // ac.getFrame().addWarning("noexistence-media", property);
- // classname = allprops.getProperty(property);
- } else {
- // I don't know this property
- throw new InvalidParamException("noexistence", property, media, ac);
- }
- }
+ if (classname == null) {
+ if (atRule instanceof AtRuleMedia && (!media.equals("all"))) {
+ // I don't know this property
+ throw new InvalidParamException("noexistence-media", property, media, ac);
+ // ac.getFrame().addWarning("noexistence-media", property);
+ // classname = allprops.getProperty(property);
+ } else {
+ // I don't know this property
+ throw new InvalidParamException("noexistence", property, media, ac);
+ }
+ }
- try {
- // create an instance of your property class
- Class expressionclass = CssExpression.class;
- if (expression != null) {
- expressionclass = expression.getClass();
- }
- // Maybe it will be necessary to add the check parameter as for
- // create property, so... FIXME
- Class[] parametersType = { ac.getClass(), expressionclass };
- Constructor constructor = Class.forName(classname).getConstructor(parametersType);
- Object[] parameters = { ac, expression };
- // invoke the constructor
- return (CssProperty) constructor.newInstance(parameters);
- } catch (InvocationTargetException e) {
- // catch InvalidParamException
- InvocationTargetException iv = e;
- Exception ex = (Exception) iv.getTargetException();
- throw ex;
- }
+ try {
+ // create an instance of your property class
+ Class expressionclass = CssExpression.class;
+ if (expression != null) {
+ expressionclass = expression.getClass();
+ }
+ // Maybe it will be necessary to add the check parameter as for
+ // create property, so... FIXME
+ Class[] parametersType = {ac.getClass(), expressionclass};
+ Constructor constructor = Class.forName(classname).getConstructor(parametersType);
+ Object[] parameters = {ac, expression};
+ // invoke the constructor
+ return (CssProperty) constructor.newInstance(parameters);
+ } catch (InvocationTargetException e) {
+ // catch InvalidParamException
+ Exception ex = (Exception) e.getTargetException();
+ throw ex;
+ }
}
public synchronized CssProperty createProperty(ApplContext ac, AtRule atRule, String property,
- CssExpression expression) throws Exception {
- String classname = null;
- String media = atRule.toString();
- int pos = -1;
- String upperMedia = media.toUpperCase();
- int pos2 = upperMedia.indexOf("AND ");
+ CssExpression expression) throws Exception {
+ String classname = null;
+ String media = atRule.toString();
+ int pos = -1;
+ String upperMedia = media.toUpperCase();
+ int pos2 = upperMedia.indexOf("AND ");
- if (pos2 == -1) {
- pos2 = media.length();
- }
+ if (pos2 == -1) {
+ pos2 = media.length();
+ }
- if ((pos = upperMedia.indexOf("NOT")) != -1) {
- media = media.substring(pos + 4, pos2);
- } else if ((pos = upperMedia.indexOf("ONLY")) != -1) {
- media = media.substring(pos + 4, pos2);
- } else {
- pos = media.indexOf(' ');
- media = media.substring(pos + 1, pos2);
- }
+ if ((pos = upperMedia.indexOf("NOT")) != -1) {
+ media = media.substring(pos + 4, pos2);
+ } else if ((pos = upperMedia.indexOf("ONLY")) != -1) {
+ media = media.substring(pos + 4, pos2);
+ } else {
+ pos = media.indexOf(' ');
+ media = media.substring(pos + 1, pos2);
+ }
- media = media.trim();
+ media = media.trim();
- classname = setClassName(atRule, media, ac, property);
-
- // the property does not exist in this profile
- // this is an error... or a warning if it exists in another profile
- if (classname == null) {
+ classname = setClassName(atRule, media, ac, property);
+
+ // the property does not exist in this profile
+ // this is an error... or a warning if it exists in another profile
+ if (classname == null) {
if (ac.getTreatVendorExtensionsAsWarnings() &&
- isVendorExtension(property)) {
+ isVendorExtension(property)) {
throw new WarningParamException("vendor-extension", property);
}
- ArrayList<String> pfsOk = new ArrayList<String>();
-
- for (int i=0; i<SORTEDPROFILES.length; ++i) {
- String p = String.valueOf(SORTEDPROFILES[i]);
- if (!p.equals(ac.getCssVersion()) && PropertiesLoader.getProfile(p).containsKey(property)) {
- pfsOk.add(p);
- }
- }
-
- if (pfsOk.size() > 0) {
- /*
- // This should be uncommented when no-profile in enabled
- if (ac.getProfile().equals("none")) {
- // the last one should be the best one to use
- String pf = (String) pfsOk.get(pfsOk.size()-1),
- old_pf = ac.getCssVersion();
- ac.setCssVersion(pf);
- ac.getFrame().addWarning("noexistence", new String[] { property, ac.getMsg().getString(old_pf), pfsOk.toString() });
- classname = setClassName(atRule, media, ac, property);
- ac.setCssVersion(old_pf);
- }
- else
- */
- throw new InvalidParamException("noexistence", new String[] { property, ac.getMsg().getString(ac.getCssVersion()), pfsOk.toString() }, ac);
- } else {
- throw new InvalidParamException("noexistence-at-all", property, ac);
- }
- }
+ ArrayList<String> pfsOk = new ArrayList<String>();
- CssIdent initial = new CssIdent("initial");
+ for (int i = 0; i < SORTEDPROFILES.length; ++i) {
+ String p = String.valueOf(SORTEDPROFILES[i]);
+ if (!p.equals(ac.getCssVersion()) && PropertiesLoader.getProfile(p).containsKey(property)) {
+ pfsOk.add(p);
+ }
+ }
- try {
- if (expression.getValue().equals(initial) && ac.getCssVersion().equals("css3")) {
- // create an instance of your property class
- Class[] parametersType = {};
- Constructor constructor = Class.forName(classname).getConstructor(parametersType);
- Object[] parameters = {};
- // invoke the constructor
- return (CssProperty) constructor.newInstance(parameters);
- } else {
- // create an instance of your property class
- Class[] parametersType = { ac.getClass(), expression.getClass(), boolean.class };
- Constructor constructor = Class.forName(classname).getConstructor(parametersType);
- Object[] parameters = { ac, expression, Boolean.TRUE};
- // invoke the constructor
- return (CssProperty) constructor.newInstance(parameters);
-
- }
- } catch (InvocationTargetException e) {
- // catch InvalidParamException
- InvocationTargetException iv = e;
- Exception ex = (Exception) iv.getTargetException();
- throw ex;
- }
+ if (pfsOk.size() > 0) {
+ /*
+ // This should be uncommented when no-profile in enabled
+ if (ac.getProfile().equals("none")) {
+ // the last one should be the best one to use
+ String pf = (String) pfsOk.get(pfsOk.size()-1),
+ old_pf = ac.getCssVersion();
+ ac.setCssVersion(pf);
+ ac.getFrame().addWarning("noexistence", new String[] { property, ac.getMsg().getString(old_pf), pfsOk.toString() });
+ classname = setClassName(atRule, media, ac, property);
+ ac.setCssVersion(old_pf);
+ }
+ else
+ */
+ throw new InvalidParamException("noexistence", new String[]{property, ac.getMsg().getString(ac.getCssVersion()), pfsOk.toString()}, ac);
+ } else {
+ throw new InvalidParamException("noexistence-at-all", property, ac);
+ }
+ }
+
+ CssIdent initial = new CssIdent("initial");
+
+ try {
+ if (expression.getValue().equals(initial) && ac.getCssVersion().equals("css3")) {
+ // create an instance of your property class
+ Class[] parametersType = {};
+ Constructor constructor = Class.forName(classname).getConstructor(parametersType);
+ Object[] parameters = {};
+ // invoke the constructor
+ return (CssProperty) constructor.newInstance(parameters);
+ } else {
+ // create an instance of your property class
+ Class[] parametersType = {ac.getClass(), expression.getClass(), boolean.class};
+ Constructor constructor = Class.forName(classname).getConstructor(parametersType);
+ Object[] parameters = {ac, expression, Boolean.TRUE};
+ // invoke the constructor
+ return (CssProperty) constructor.newInstance(parameters);
+
+ }
+ } catch (InvocationTargetException e) {
+ // catch InvalidParamException
+ Exception ex = (Exception) e.getTargetException();
+ throw ex;
+ }
}
private String setClassName(AtRule atRule, String media, ApplContext ac, String property) {
- String className;
- Vector<String> list = new Vector<String>(getVector(media));
- if (atRule instanceof AtRuleMedia) {
- className = PropertiesLoader.getProfile(ac.getCssVersion()).getProperty(property);
- // a list of media has been specified
- if (className != null && !media.equals("all")) {
- String propMedia = PropertiesLoader.mediaProperties.getProperty(property);
- for (int i = 0; i < list.size(); i++) {
- String medium = list.elementAt(i);
- if (propMedia.indexOf(medium.toLowerCase()) == -1 && !propMedia.equals("all")) {
- ac.getFrame().addWarning("noexistence-media", new String[] { property, medium + " (" + propMedia + ")" });
- }
- }
- }
- } else {
- className = PropertiesLoader.getProfile(ac.getCssVersion()).getProperty("@" + atRule.keyword() + "." + property);
- }
- return className;
+ String className;
+ Vector<String> list = new Vector<String>(getVector(media));
+ if (atRule instanceof AtRuleMedia) {
+ className = PropertiesLoader.getProfile(ac.getCssVersion()).getProperty(property);
+ // a list of media has been specified
+ if (className != null && !media.equals("all")) {
+ String propMedia = PropertiesLoader.mediaProperties.getProperty(property);
+ for (int i = 0; i < list.size(); i++) {
+ String medium = list.elementAt(i);
+ if (propMedia.indexOf(medium.toLowerCase()) == -1 && !propMedia.equals("all")) {
+ ac.getFrame().addWarning("noexistence-media", new String[]{property, medium + " (" + propMedia + ")"});
+ }
+ }
+ }
+ } else {
+ className = PropertiesLoader.getProfile(ac.getCssVersion()).getProperty("@" + atRule.keyword() + "." + property);
+ }
+ return className;
}
private boolean isVendorExtension(String property) {
- return property.length() > 0 &&
- (property.charAt(0) == '-' || property.charAt(0) == '_');
+ return property.length() > 0 &&
+ (property.charAt(0) == '-' || property.charAt(0) == '_');
}
}
Index: AtRulePage.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/AtRulePage.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- AtRulePage.java 14 Sep 2005 15:14:18 -0000 1.4
+++ AtRulePage.java 29 Aug 2011 07:21:00 -0000 1.5
@@ -17,13 +17,13 @@
/**
* This class manages all media defines by CSS2
*
+ * @author Philippe Le H�garet
* @version $Revision$
- * @author Philippe Le H�garet
*/
public class AtRulePage extends AtRule {
static final String[] pseudo = {
- ":left", ":right", ":first"
+ ":left", ":right", ":first"
};
String name;
@@ -34,7 +34,7 @@
* Returns the at rule keyword
*/
public String keyword() {
- return "page";
+ return "page";
}
/**
@@ -43,122 +43,131 @@
* or a random name without semi-colon at the beginning
*/
public AtRulePage setName(String name, ApplContext ac)
- throws InvalidParamException {
- if (name.charAt(0) == ':') {
- for (int i = 0; i < pseudo.length; i++) {
- if (name.equals(pseudo[i])) {
- this.name = pseudo[i];
- return this;
- }
- }
- throw new InvalidParamException("page", name, ac);
- } else {
- this.name = name;
- }
+ throws InvalidParamException {
+ if (name.charAt(0) == ':') {
+ for (int i = 0; i < pseudo.length; i++) {
+ if (name.equals(pseudo[i])) {
+ this.name = pseudo[i];
+ return this;
+ }
+ }
+ throw new InvalidParamException("page", name, ac);
+ } else {
+ this.name = name;
+ }
- return this;
+ return this;
}
public AtRulePage setIdent(String ident) {
- this.ident = ident;
- return this;
+ this.ident = ident;
+ return this;
}
public String getIdent() {
- return ident;
+ return ident;
}
/**
* Return true if atRule is exactly the same as current
*/
public boolean equals(Object atRule) {
- if (atRule instanceof AtRulePage) {
- AtRulePage other = (AtRulePage) atRule;
- boolean res = true;
- if ((name != null) && (other.name != null)) {
- res = res && name.equals(other.name);
- } else {
- if ((name != null) || (other.name != null)) {
- return false;
- }
- }
- if ((ident != null) && (other.ident != null)) {
- res = res && ident.equals(((AtRulePage) atRule).ident);
- } else {
- if ((ident != null) || (other.ident != null)) {
- return false;
- }
- }
- return res;
- } else {
- return false;
- }
+ AtRulePage other;
+ try {
+ other = (AtRulePage) atRule;
+ } catch (ClassCastException cce) {
+ // not an AtRulePage, fail
+ return false;
+ }
+ if ((name != null) && (other.name != null)) {
+ if (!name.equals(other.name)) {
+ return false;
+ }
+ } else {
+ if ((name != null) || (other.name != null)) {
+ return false;
+ }
+ }
+ if ((ident != null) && (other.ident != null)) {
+ return ident.equals(((AtRulePage) atRule).ident);
+ } else {
+ if ((ident != null) || (other.ident != null)) {
+ return false;
+ }
+ }
+ return true;
}
/**
* The second must be exactly the same of this one
*/
public boolean canApply(AtRule atRule) {
- if (atRule instanceof AtRulePage) {
- AtRulePage other = (AtRulePage) atRule;
- boolean res = true;
- if ((name != null) && (other.name != null)) {
- res = res && name.equals(other.name);
- } else {
- if ((name != null) || (other.name != null)) {
- return false;
- }
- }
- if ((ident != null) && (other.ident != null)) {
- res = res && ident.equals(((AtRulePage) atRule).ident);
- } else {
- if ((ident != null) || (other.ident != null)) {
- return false;
- }
- }
- return res;
- } else {
- return false;
- }
+ AtRulePage other;
+ try {
+ other = (AtRulePage) atRule;
+ } catch (ClassCastException cce) {
+ // not an AtRulePage, fail
+ return false;
+ }
+ if ((name != null) && (other.name != null)) {
+ if (!name.equals(other.name)) {
+ return false;
+ }
+ } else {
+ if ((name != null) || (other.name != null)) {
+ return false;
+ }
+ }
+ if ((ident != null) && (other.ident != null)) {
+ return ident.equals(((AtRulePage) atRule).ident);
+ } else {
+ if ((ident != null) || (other.ident != null)) {
+ return false;
+ }
+ }
+ return true;
}
/**
* The second must only match this one
*/
public boolean canMatched(AtRule atRule) {
- if (atRule instanceof AtRulePage) {
- boolean res = true;
- if (name != null) {
- res = res && name.equals(((AtRulePage) atRule).name);
- }
- if (ident != null) {
- res = res && ident.equals(((AtRulePage) atRule).ident);
- }
- return res;
- } else {
- return false;
- }
+ AtRulePage atRulePage;
+ try {
+ atRulePage = (AtRulePage) atRule;
+ } catch (ClassCastException cce) {
+ // not an AtRulePage, fail
+ return false;
+ }
+ if ((name != null) && !name.equals(atRulePage.name)) {
+ return false;
+ }
+ if ((ident != null) && !ident.equals(atRulePage.ident)) {
+ return false;
+ }
+ return true;
}
public String getName() {
- return name;
+ return name;
}
/**
* Returns a string representation of the object.
*/
public String toString() {
- String ret = "@" + keyword() ;
- if (ident!=null) {
- ret += " " + ident;
- if (name!=null) {
- ret += name;
- }
- } else if (name != null) {
- ret += " " + name;
- }
- return ret;
+ StringBuilder ret = new StringBuilder();
+ ret.append('@').append(keyword());
+ if (ident != null) {
+ ret.append(' ').append(ident);
+ if (name != null) {
+ ret.append(name);
+ }
+ } else if (name != null) {
+ ret.append(' ').append(name);
+ }
+ return ret.toString();
}
}
Index: CssParseException.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/CssParseException.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- CssParseException.java 14 Sep 2005 15:14:18 -0000 1.5
+++ CssParseException.java 29 Aug 2011 07:21:00 -0000 1.6
@@ -7,11 +7,11 @@
package org.w3c.css.parser;
-import java.util.Vector;
-
import org.w3c.css.parser.analyzer.ParseException;
import org.w3c.css.values.CssExpression;
+import java.util.ArrayList;
+
/**
* @version $Revision$
*/
@@ -20,7 +20,7 @@
/**
* The list of context when the error appears
*/
- Vector contexts;
+ ArrayList<CssSelectors> contexts;
/**
* the property name
@@ -48,32 +48,32 @@
* Create a new CssParseException
*/
public CssParseException(Exception exc) {
- parseException = exc;
- if (parseException instanceof ParseException) {
- ParseException e = (ParseException) exc;
- error = (e.currentToken != null
- && e.expectedTokenSequences != null
- && e.tokenImage != null);
- }
+ parseException = exc;
+ if (parseException instanceof ParseException) {
+ ParseException e = (ParseException) exc;
+ error = (e.currentToken != null
+ && e.expectedTokenSequences != null
+ && e.tokenImage != null);
+ }
}
public Exception getException() {
- return parseException;
+ return parseException;
}
public boolean isParseException() {
- return (parseException instanceof ParseException);
+ return (parseException instanceof ParseException);
}
/**
* Get the exception message
*/
public String getMessage() {
- if (!error) {
- return parseException.getMessage();
- } else {
- return null;
- }
+ if (!error) {
+ return parseException.getMessage();
+ } else {
+ return null;
+ }
}
/**
@@ -81,7 +81,7 @@
*
* @param contexts the new value for the attribute
*/
- public void setContexts(Vector contexts) {
+ public void setContexts(ArrayList<CssSelectors> contexts) {
this.contexts = contexts;
}
@@ -90,7 +90,7 @@
*
* @return the value of the attribute
*/
- public Vector getContexts() {
+ public ArrayList<CssSelectors> getContexts() {
return contexts;
}
Index: CssFouffa.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/CssFouffa.java,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- CssFouffa.java 5 Jan 2010 13:49:33 -0000 1.53
+++ CssFouffa.java 29 Aug 2011 07:21:00 -0000 1.54
@@ -21,6 +21,8 @@
import org.w3c.css.util.HTTPURL;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.util.Util;
+import org.w3c.css.util.Warning;
+import org.w3c.css.util.Warnings;
import org.w3c.css.values.CssExpression;
import java.io.FileNotFoundException;
@@ -31,6 +33,7 @@
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
+import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Vector;
@@ -56,7 +59,7 @@
CssPropertyFactory properties = null;
// all listeners
- Vector<CssValidatorListener> listeners;
+ ArrayList<CssValidatorListener> listeners;
// all errors
Errors errors;
@@ -64,7 +67,7 @@
// origin of the style sheet
int origin;
- Vector<String> visited = null;
+ ArrayList<String> visited = null;
/**
* Create a new CssFouffa with a data input and a begin line number.
@@ -127,7 +130,7 @@
}
properties = new CssPropertyFactory(profile);
- listeners = new Vector<CssValidatorListener>();
+ listeners = new ArrayList<CssValidatorListener>();
}
/**
@@ -173,13 +176,13 @@
* Create a new CssFouffa. Used by handleImport.
*
* @param in The source input stream (use for data input, errors,
- * warnings and import)
+ * warnings and import)
* @param listeners Works with this listeners
* @throws IOException if an I/O error occurs.
*/
private CssFouffa(ApplContext ac, InputStream in, URL url,
- Vector<CssValidatorListener> listeners,
- Vector<String> urlvisited,
+ ArrayList<CssValidatorListener> listeners,
+ ArrayList<String> urlvisited,
CssPropertyFactory cssfactory, boolean mode)
throws IOException {
this(ac, in, ac.getCharsetForURL(url), url, 0);
@@ -324,7 +327,7 @@
* @see org.w3c.css.parser.CssValidatorListener
*/
public final void addListener(CssValidatorListener listener) {
- listeners.addElement(listener);
+ listeners.add(listener);
}
/**
@@ -334,7 +337,7 @@
* @see org.w3c.css.parser.CssValidatorListener
*/
public final void removeListener(CssValidatorListener listener) {
- listeners.removeElement(listener);
+ listeners.remove(listener);
}
/**
@@ -367,13 +370,12 @@
throw (ne);
}
+ Errors errors = ac.getFrame().getErrors();
+ Warnings warnings = ac.getFrame().getWarnings();
// That's all folks, notify all errors and warnings
- for (Enumeration<CssValidatorListener> e = listeners.elements();
- e.hasMoreElements();) {
- CssValidatorListener listener;
- listener = e.nextElement();
- listener.notifyErrors(ac.getFrame().getErrors());
- listener.notifyWarnings(ac.getFrame().getWarnings());
+ for (CssValidatorListener listener : listeners) {
+ listener.notifyErrors(errors);
+ listener.notifyWarnings(warnings);
}
}
@@ -419,7 +421,7 @@
String surl = importedURL.toString();
if (visited == null) {
- visited = new Vector<String>(2);
+ visited = new ArrayList<String>();
} else {
// check that we didn't already got this URL, or that the
// number of imports is not exploding
@@ -437,8 +439,8 @@
return;
}
}
- Vector<String> newVisited = new Vector<String>(visited);
- newVisited.addElement(surl);
+ ArrayList<String> newVisited = new ArrayList<String>(visited);
+ newVisited.add(surl);
if (Util.importSecurity) {
throw new FileNotFoundException("[SECURITY] You can't " +
@@ -497,10 +499,9 @@
*/
public void handleAtRule(String ident, String string) {
if (mode) {
- Enumeration<CssValidatorListener> e = listeners.elements();
- while (e.hasMoreElements()) {
- CssValidatorListener listener = e.nextElement();
+ for (CssValidatorListener listener : listeners) {
listener.handleAtRule(ac, ident, string);
+
}
} else {
if (!Util.noErrorTrace) {
@@ -583,7 +584,7 @@
public void parseDeclarations(CssSelectors context) {
// here we have an example for reusing the parser.
try {
- Vector properties = declarations();
+ ArrayList<CssProperty> properties = declarations();
if (properties != null && properties.size() != 0) {
handleRule(context, properties);
@@ -600,10 +601,12 @@
}
if (!Util.noErrorTrace) {
- for (Enumeration<CssValidatorListener> e = listeners.elements(); e.hasMoreElements();) {
- CssValidatorListener listener = e.nextElement();
- listener.notifyErrors(ac.getFrame().getErrors());
- listener.notifyWarnings(ac.getFrame().getWarnings());
+ Errors errors = ac.getFrame().getErrors();
+ Warnings warnings = ac.getFrame().getWarnings();
+
+ for (CssValidatorListener listener : listeners) {
+ listener.notifyErrors(errors);
+ listener.notifyWarnings(warnings);
}
}
}
@@ -616,9 +619,8 @@
* added to the storage for the output
*/
public void newAtRule(AtRule atRule) {
- for (Enumeration<CssValidatorListener> e = listeners.elements();
- e.hasMoreElements();) {
- e.nextElement().newAtRule(atRule);
+ for (CssValidatorListener listener : listeners) {
+ listener.newAtRule(atRule);
}
}
@@ -629,10 +631,10 @@
* @charset rule that has been found by the parser
*/
public void addCharSet(String charset) {
- for (Enumeration<CssValidatorListener> e = listeners.elements();
- e.hasMoreElements();) {
- e.nextElement().addCharSet(charset);
+ for (CssValidatorListener listener : listeners) {
+ listener.addCharSet(charset);
}
+
Charset c = null;
try {
c = Charset.forName(charset);
@@ -662,9 +664,8 @@
* in it.
*/
public void endOfAtRule() {
- for (Enumeration<CssValidatorListener> e = listeners.elements();
- e.hasMoreElements();) {
- e.nextElement().endOfAtRule();
+ for (CssValidatorListener listener : listeners) {
+ listener.endOfAtRule();
}
}
@@ -674,9 +675,8 @@
* @param important true if the rule was declared important in the stylesheet
*/
public void setImportant(boolean important) {
- for (Enumeration<CssValidatorListener> e = listeners.elements();
- e.hasMoreElements();) {
- e.nextElement().setImportant(important);
+ for (CssValidatorListener listener : listeners) {
+ listener.setImportant(important);
}
}
@@ -686,9 +686,9 @@
* @param selectors a list of one or more selectors to be added to the output
* stylesheet
*/
- public void setSelectorList(Vector selectors) {
- for (Enumeration<CssValidatorListener> e = listeners.elements(); e.hasMoreElements();) {
- e.nextElement().setSelectorList(selectors);
+ public void setSelectorList(ArrayList<CssSelectors> selectors) {
+ for (CssValidatorListener listener : listeners) {
+ listener.setSelectorList(selectors);
}
}
@@ -699,9 +699,9 @@
* stylesheet (for example: all properties in an
* @rule)
*/
- public void addProperty(Vector properties) {
- for (Enumeration<CssValidatorListener> e = listeners.elements(); e.hasMoreElements();) {
- e.nextElement().setProperty(properties);
+ public void addProperty(ArrayList<CssProperty> properties) {
+ for (CssValidatorListener listener : listeners) {
+ listener.setProperty(properties);
}
}
@@ -710,8 +710,8 @@
* been read by the parser
*/
public void endOfRule() {
- for (Enumeration<CssValidatorListener> e = listeners.elements(); e.hasMoreElements();) {
- e.nextElement().endOfRule();
+ for (CssValidatorListener listener : listeners) {
+ listener.endOfRule();
}
}
@@ -721,8 +721,8 @@
* won't appear on the screen
*/
public void removeThisRule() {
- for (Enumeration<CssValidatorListener> e = listeners.elements(); e.hasMoreElements();) {
- e.nextElement().removeThisRule();
+ for (CssValidatorListener listener : listeners) {
+ listener.removeThisRule();
}
}
@@ -733,8 +733,8 @@
* @rule from the memorystructure so that it won't appear on the screen
*/
public void removeThisAtRule() {
- for (Enumeration<CssValidatorListener> e = listeners.elements(); e.hasMoreElements();) {
- e.nextElement().removeThisAtRule();
+ for (CssValidatorListener listener : listeners) {
+ listener.removeThisAtRule();
}
}
@@ -744,9 +744,9 @@
* @param selector the selector
* @param declarations Properties to associate with contexts
*/
- public void handleRule(CssSelectors selector, Vector declarations) {
- for (Enumeration<CssValidatorListener> e = listeners.elements(); e.hasMoreElements();) {
- e.nextElement().handleRule(ac, selector, declarations);
+ public void handleRule(CssSelectors selector, ArrayList<CssProperty> declarations) {
+ for (CssValidatorListener listener : listeners) {
+ listener.handleRule(ac, selector, declarations);
}
}
Index: CssValidatorListener.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/CssValidatorListener.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- CssValidatorListener.java 14 Sep 2005 15:14:18 -0000 1.6
+++ CssValidatorListener.java 29 Aug 2011 07:21:00 -0000 1.7
@@ -7,11 +7,12 @@
package org.w3c.css.parser;
-import java.util.Vector;
-
+import org.w3c.css.properties.css.CssProperty;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.Warnings;
+import java.util.ArrayList;
+
/**
* Implements this interface if you want to use the CSS1 parser.
*
@@ -23,10 +24,10 @@
* Adds a vector of properties to a selector.
*
* @param selector the selector
- * @param declarations Properties to associate with contexts
+ * @param properties Properties to associate with contexts
*/
public void handleRule(ApplContext ac, CssSelectors selector,
- Vector declarations);
+ ArrayList<CssProperty> properties);
/**
* Handles an at-rule.
@@ -45,14 +46,13 @@
* @param value The string representation of this at-rule
* @see org.w3c.css.parser.analyzer.Couple
*/
- public void handleAtRule(ApplContext ac, String ident, String string);
+ public void handleAtRule(ApplContext ac, String ident, String value);
/**
* Notify all errors
*
* @param errors All errors in the style sheet
* @see CssError
- * @see CssErrorDeclaration
* @see CssErrorToken
*/
public void notifyErrors(Errors errors);
@@ -73,9 +73,9 @@
public void setImportant(boolean important);
- public void setSelectorList(Vector selectors);
+ public void setSelectorList(ArrayList<CssSelectors> selectors);
- public void setProperty(Vector properties);
+ public void setProperty(ArrayList<CssProperty> properties);
public void endOfRule();
Received on Monday, 29 August 2011 07:21:05 UTC