- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 25 Mar 2008 18:30:14 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/values In directory hutz:/tmp/cvs-serv29386 Modified Files: ATSCColor.java CssAngle.java CssColor.java CssColorCSS1.java CssColorCSS2.java CssColorCSS21.java CssDate.java CssExpression.java CssFrequency.java CssIdent.java CssLength.java CssNumber.java CssPercentage.java CssResolution.java CssString.java CssTime.java CssURL.java CssUnicodeRange.java CssValue.java RGB.java Added Files: CssTypes.java Log Message: Various bug fixes + getTypes for more readable switch statements in some other constructions Index: CssResolution.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssResolution.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- CssResolution.java 8 Sep 2005 12:24:10 -0000 1.3 +++ CssResolution.java 25 Mar 2008 18:30:11 -0000 1.4 @@ -24,6 +24,12 @@ */ public class CssResolution extends CssValue { + public static final int type = CssTypes.CSS_RESOLUTION; + + public final int getType() { + return type; + } + /** * Create a new CssResolution */ Index: CssColorCSS2.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssColorCSS2.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- CssColorCSS2.java 15 May 2007 06:06:45 -0000 1.10 +++ CssColorCSS2.java 25 Mar 2008 18:30:11 -0000 1.11 @@ -6,7 +6,7 @@ // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.css.values; -import java.util.Hashtable; +import java.util.HashMap; import org.w3c.css.util.ApplContext; import org.w3c.css.util.InvalidParamException; @@ -161,11 +161,6 @@ */ public class CssColorCSS2 extends CssColor { - Object color; - RGB rgb; - static Hashtable definedColors; - static CssIdent inherit = new CssIdent("inherit"); - /** * Create a new CssColorCSS2. */ @@ -185,171 +180,6 @@ } /** - * Set the value from a defined color RBG. - * - * @param s the string representation of the color. - * @exception InvalidParamException the color is incorrect. - */ - public void set(String s, ApplContext ac) throws InvalidParamException { - if (s.startsWith("#")) { - setShortRGBColor(s.toLowerCase(), ac); - } else { - setIdentColor(s, ac); - } - } - - /** - * Return the internal value. - */ - public Object get() { - if (color != null) { - if (color == inherit) { - return null; - } else { - return color; - } - } else { - return rgb.r; - } - } - - /** - * Returns <code>true</code> if the internal value is the default value - * (e.g. 'inherited'). - */ - public boolean isDefault() { - return color == inherit; - } - - /** - * Returns a string representation of the object. - */ - public String toString() { - if (color != null) { - if (color == inherit) { - return inherit.toString(); - } else { - return color.toString(); - } - } else { - return rgb.toString(); - } - } - - /** - * Parse a RGB color. - * format rgb(<num>%?, <num>%?, <num>%?) - */ - public void setRGBColor(CssExpression exp, ApplContext ac) - throws InvalidParamException { - CssValue val = exp.getValue(); - char op = exp.getOperator(); - color = null; - rgb = new RGB(); - - if (val == null || op != COMMA) { - throw new InvalidParamException("invalid-color", ac); - } - - if (val instanceof CssNumber) { - CssNumber number = (CssNumber) val; - rgb.r = clippedIntValue(number.getInt(), ac); - rgb.setPercent(false); - } else if (val instanceof CssPercentage) { - rgb.r = clippedPercentValue(((Float) val.get()).floatValue(), ac); - rgb.setPercent(true); - } else { - throw new InvalidParamException("rgb", val, ac); - } - - exp.next(); - val = exp.getValue(); - op = exp.getOperator(); - - if (val == null || op != COMMA) { - throw new InvalidParamException("invalid-color", ac); - } - - if (val instanceof CssNumber) { - CssNumber number = (CssNumber) val; - if (rgb.isPercent()) { - throw new InvalidParamException("percent", val, ac); - } - rgb.g = clippedIntValue(number.getInt(), ac); - } else if (val instanceof CssPercentage) { - if (!rgb.isPercent()) { - throw new InvalidParamException("integer", val, ac); - } - rgb.g = clippedPercentValue(((Float) val.get()).floatValue(), ac); - } else { - throw new InvalidParamException("rgb", val, ac); - } - - exp.next(); - val = exp.getValue(); - op = exp.getOperator(); - - if (val == null) { - throw new InvalidParamException("invalid-color", ac); - } - - if (val instanceof CssNumber) { - CssNumber number = (CssNumber) val; - if (rgb.isPercent()) { - throw new InvalidParamException("percent", val, ac); - } - rgb.b = clippedIntValue(number.getInt(), ac); - } else if (val instanceof CssPercentage) { - if (!rgb.isPercent()) { - throw new InvalidParamException("integer", val, ac); - } - rgb.b = clippedPercentValue(((Float) val.get()).floatValue(), ac); - } else { - throw new InvalidParamException("rgb", val, ac); - } - - exp.next(); - if (exp.getValue() != null) { - throw new InvalidParamException("rgb", exp.getValue(), ac); - } - } - - /** - * Parse a RGB color. - * format #(3-6)<hexnum> - */ - private void setShortRGBColor(String s, ApplContext ac) - throws InvalidParamException { - int r; - int g; - int b; - - rgb = new RGB(); - color = null; - s = s.substring(1); - - if (s.length() != 3 && s.length() != 6) { - throw new InvalidParamException("rgb", s, ac); - } - if (s.length() == 3) { - String sh = s.substring(0,1); - r = Integer.parseInt(sh+sh, 16); - sh = s.substring(1,2); - g = Integer.parseInt(sh+sh, 16); - sh = s.substring(2,3); - b = Integer.parseInt(sh+sh, 16); - } else { - r = Integer.parseInt(s.substring(0,2), 16); - g = Integer.parseInt(s.substring(2,4), 16); - b = Integer.parseInt(s.substring(4,6), 16); - } - rgb.r = new Integer(r); - rgb.g = new Integer(g); - rgb.b = new Integer(b); - rgb.output = "#" + s; - } - - /** * Parse an ident color. */ private void setIdentColor(String s, ApplContext ac) @@ -375,125 +205,40 @@ throw new InvalidParamException("value", s, "color", ac); } - private static Integer clippedIntValue(int rgb, ApplContext ac) { - if (rgb < 0 || rgb > 255) { - ac.getFrame().addWarning("out-of-range", Util.displayFloat(rgb)); - return new Integer((rgb<0)?0:255); - } - else return(new Integer(rgb)); - } - - private static Float clippedPercentValue(float p, ApplContext ac) { - if (p < 0. || p > 100.) { - ac.getFrame().addWarning("out-of-range", Util.displayFloat(p)); - return new Float((p<0.)?0.:100.); - } - else return(new Float(p)); - } - - /** - * Compares two values for equality. - * - * @param value The other value. - */ - public boolean equals(Object cssColor) { - return ((cssColor instanceof CssColorCSS2) && - ((color != null && color.equals(((CssColorCSS2) cssColor).color)) - || ((color == null) - && (rgb != null) - && (((CssColorCSS2) cssColor).rgb != null) - && (rgb.r.equals(((CssColorCSS2) cssColor).rgb.r) - && rgb.g.equals(((CssColorCSS2) cssColor).rgb.g) - && rgb.b.equals(((CssColorCSS2) cssColor).rgb.b))))); - } - - /** - * Gets the red component of this color. - */ - public Object getRed() { - return rgb.r; - } - - /** - * Gets the green component of this color. - */ - public Object getGreen() { - return rgb.g; - } - - /** - * Gets the blue component of this color. - */ - public Object getBlue() { - return rgb.b; - } - static { - definedColors = new Hashtable(); + definedColors = new HashMap<String,Object>(); definedColors.put("black", - new RGB(new Integer(0), - new Integer(0), - new Integer(0))); + new RGB(0, 0, 0)); definedColors.put("silver", - new RGB(new Integer(192), - new Integer(192), - new Integer(192))); + new RGB(192, 192, 192)); definedColors.put("gray", - new RGB(new Integer(128), - new Integer(128), - new Integer(128))); + new RGB(128, 128, 128)); definedColors.put("white", - new RGB(new Integer(255), - new Integer(255), - new Integer(255))); + new RGB(255, 255, 255)); definedColors.put("maroon", - new RGB(new Integer(128), - new Integer(0), - new Integer(0))); + new RGB(128, 0, 0)); definedColors.put("red", - new RGB(new Integer(255), - new Integer(0), - new Integer(0))); + new RGB(255, 0, 0)); definedColors.put("purple", - new RGB(new Integer(128), - new Integer(0), - new Integer(128))); + new RGB(128, 0, 128)); definedColors.put("fuchsia", - new RGB(new Integer(255), - new Integer(0), - new Integer(255))); + new RGB(255, 0, 255)); definedColors.put("green", - new RGB(new Integer(0), - new Integer(128), - new Integer(0))); + new RGB(0, 128, 0)); definedColors.put("lime", - new RGB(new Integer(0), - new Integer(255), - new Integer(0))); + new RGB(0, 255, 0)); definedColors.put("olive", - new RGB(new Integer(128), - new Integer(128), - new Integer(0))); + new RGB(128, 128, 0)); definedColors.put("yellow", - new RGB(new Integer(255), - new Integer(255), - new Integer(0))); + new RGB(255, 255, 0)); definedColors.put("navy", - new RGB(new Integer(0), - new Integer(0), - new Integer(128))); + new RGB(0, 0, 128)); definedColors.put("blue", - new RGB(new Integer(0), - new Integer(0), - new Integer(255))); + new RGB(0, 0, 255)); definedColors.put("teal", - new RGB(new Integer(0), - new Integer(128), - new Integer(128))); + new RGB(0, 128, 128)); definedColors.put("aqua", - new RGB(new Integer(0), - new Integer(255), - new Integer(255))); + new RGB(0, 255, 255)); definedColors.put("activeborder", "ActiveBorder"); definedColors.put("activecaption", "ActiveCaption"); definedColors.put("appworkspace", "AppWorkspace"); Index: CssColorCSS1.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssColorCSS1.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- CssColorCSS1.java 15 May 2007 06:06:45 -0000 1.9 +++ CssColorCSS1.java 25 Mar 2008 18:30:11 -0000 1.10 @@ -6,7 +6,7 @@ // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.css.values; -import java.util.Hashtable; +import java.util.HashMap; import org.w3c.css.util.ApplContext; import org.w3c.css.util.InvalidParamException; @@ -161,11 +161,6 @@ */ public class CssColorCSS1 extends CssColor { - Object color; - RGB rgb; - static Hashtable definedColors; - static CssIdent inherit = new CssIdent("inherit"); - /** * Create a new CssColorCSS1 */ @@ -185,171 +180,6 @@ } /** - * Set the value from a defined color RBG. - * - * @param s the string representation of the color. - * @exception InvalidParamException the color is incorrect. - */ - public void set(String s, ApplContext ac) throws InvalidParamException { - if (s.startsWith("#")) { - setShortRGBColor(s.toLowerCase(), ac); - } else { - setIdentColor(s, ac); - } - } - - /** - * Return the internal value. - */ - public Object get() { - if (color != null) { - if (color == inherit) { - return null; - } else { - return color; - } - } else { - return rgb.r; - } - } - - /** - * Returns <code>true</code> if the internal value is the default value - * (e.g. 'inherited'). - */ - public boolean isDefault() { - return color == inherit; - } - - /** - * Returns a string representation of the object. - */ - public String toString() { - if (color != null) { - if (color == inherit) { - return inherit.toString(); - } else { - return color.toString(); - } - } else { - return rgb.toString(); - } - } - - /** - * Parse a RGB color. - * format rgb(<num>%?, <num>%?, <num>%?) - */ - public void setRGBColor(CssExpression exp, ApplContext ac) - throws InvalidParamException { - CssValue val = exp.getValue(); - char op = exp.getOperator(); - color = null; - rgb = new RGB(); - - if (val == null || op != COMMA) { - throw new InvalidParamException("invalid-color", ac); - } - - if (val instanceof CssNumber) { - CssNumber number = (CssNumber) val; - rgb.r = clippedIntValue(number.getInt(), ac); - rgb.setPercent(false); - } else if (val instanceof CssPercentage) { - rgb.r = clippedPercentValue(((Float) val.get()).floatValue(), ac); - rgb.setPercent(true); - } else { - throw new InvalidParamException("rgb", val, ac); - } - - exp.next(); - val = exp.getValue(); - op = exp.getOperator(); - - if (val == null || op != COMMA) { - throw new InvalidParamException("invalid-color", ac); - } - - if (val instanceof CssNumber) { - CssNumber number = (CssNumber) val; - if (rgb.isPercent()) { - throw new InvalidParamException("percent", val, ac); - } - rgb.g = clippedIntValue(number.getInt(), ac); - } else if (val instanceof CssPercentage) { - if (!rgb.isPercent()) { - throw new InvalidParamException("integer", val, ac); - } - rgb.g = clippedPercentValue(((Float) val.get()).floatValue(), ac); - } else { - throw new InvalidParamException("rgb", val, ac); - } - - exp.next(); - val = exp.getValue(); - op = exp.getOperator(); - - if (val == null) { - throw new InvalidParamException("invalid-color", ac); - } - - if (val instanceof CssNumber) { - if (rgb.isPercent()) { - throw new InvalidParamException("percent", val, ac); - } - rgb.b = clippedIntValue(((Float) val.get()).intValue(), ac); - } else if (val instanceof CssPercentage) { - CssNumber number = (CssNumber) val; - if (rgb.isPercent()) { - throw new InvalidParamException("percent", val, ac); - } - rgb.b = clippedPercentValue(number.getInt(), ac); - } else { - throw new InvalidParamException("rgb", val, ac); - } - - exp.next(); - if (exp.getValue() != null) { - throw new InvalidParamException("rgb", exp.getValue(), ac); - } - } - - /** - * Parse a RGB color. - * format #(3-6)<hexnum> - */ - private void setShortRGBColor(String s, ApplContext ac) - throws InvalidParamException { - int r; - int g; - int b; - - rgb = new RGB(); - color = null; - s = s.substring(1); - - if (s.length() != 3 && s.length() != 6) { - throw new InvalidParamException("rgb", s, ac); - } - if (s.length() == 3) { - String sh = s.substring(0,1); - r = Integer.parseInt(sh+sh, 16); - sh = s.substring(1,2); - g = Integer.parseInt(sh+sh, 16); - sh = s.substring(2,3); - b = Integer.parseInt(sh+sh, 16); - } else { - r = Integer.parseInt(s.substring(0,2), 16); - g = Integer.parseInt(s.substring(2,4), 16); - b = Integer.parseInt(s.substring(4,6), 16); - } - rgb.r = new Integer(r); - rgb.g = new Integer(g); - rgb.b = new Integer(b); - rgb.output = "#" + s; - } - - /** * Parse an ident color. */ private void setIdentColor(String s, ApplContext ac) @@ -375,125 +205,40 @@ throw new InvalidParamException("value", s, "color", ac); } - private static Integer clippedIntValue(int rgb, ApplContext ac) { - if (rgb < 0 || rgb > 255) { - ac.getFrame().addWarning("out-of-range", Util.displayFloat(rgb)); - return new Integer((rgb<0)?0:255); - } - else return(new Integer(rgb)); - } - - private static Float clippedPercentValue(float p, ApplContext ac) { - if (p < 0. || p > 100.) { - ac.getFrame().addWarning("out-of-range", Util.displayFloat(p)); - return new Float((p<0.)?0.:100.); - } - else return(new Float(p)); - } - - /** - * Compares two values for equality. - * - * @param value The other value. - */ - public boolean equals(Object cssColor) { - return ((cssColor instanceof CssColorCSS1) && - ((color != null && color.equals(((CssColorCSS1) cssColor).color)) - || ((color == null) - && (rgb != null) - && (((CssColorCSS1) cssColor).rgb != null) - && (rgb.r.equals(((CssColorCSS1) cssColor).rgb.r) - && rgb.g.equals(((CssColorCSS1) cssColor).rgb.g) - && rgb.b.equals(((CssColorCSS1) cssColor).rgb.b))))); - } - - /** - * Gets the red component of this color. - */ - public Object getRed() { - return rgb.r; - } - - /** - * Gets the green component of this color. - */ - public Object getGreen() { - return rgb.g; - } - - /** - * Gets the blue component of this color. - */ - public Object getBlue() { - return rgb.b; - } - static { - definedColors = new Hashtable(); + definedColors = new HashMap<String,Object>(); definedColors.put("black", - new RGB(new Integer(0), - new Integer(0), - new Integer(0))); + new RGB(0, 0, 0)); definedColors.put("silver", - new RGB(new Integer(192), - new Integer(192), - new Integer(192))); + new RGB(192, 192, 192)); definedColors.put("gray", - new RGB(new Integer(128), - new Integer(128), - new Integer(128))); + new RGB(128, 128, 128)); definedColors.put("white", - new RGB(new Integer(255), - new Integer(255), - new Integer(255))); + new RGB(255, 255, 255)); definedColors.put("maroon", - new RGB(new Integer(128), - new Integer(0), - new Integer(0))); + new RGB(128, 0, 0)); definedColors.put("red", - new RGB(new Integer(255), - new Integer(0), - new Integer(0))); + new RGB(255, 0, 0)); definedColors.put("purple", - new RGB(new Integer(128), - new Integer(0), - new Integer(128))); + new RGB(128, 0, 128)); definedColors.put("fuchsia", - new RGB(new Integer(255), - new Integer(0), - new Integer(255))); + new RGB(255, 0, 255)); definedColors.put("green", - new RGB(new Integer(0), - new Integer(128), - new Integer(0))); + new RGB(0, 128, 0)); definedColors.put("lime", - new RGB(new Integer(0), - new Integer(255), - new Integer(0))); + new RGB(0, 255, 0)); definedColors.put("olive", - new RGB(new Integer(128), - new Integer(128), - new Integer(0))); + new RGB(128, 128, 0)); definedColors.put("yellow", - new RGB(new Integer(255), - new Integer(255), - new Integer(0))); + new RGB(255, 255, 0)); definedColors.put("navy", - new RGB(new Integer(0), - new Integer(0), - new Integer(128))); + new RGB(0, 0, 128)); definedColors.put("blue", - new RGB(new Integer(0), - new Integer(0), - new Integer(255))); + new RGB(0, 0, 255)); definedColors.put("teal", - new RGB(new Integer(0), - new Integer(128), - new Integer(128))); + new RGB(0, 128, 128)); definedColors.put("aqua", - new RGB(new Integer(0), - new Integer(255), - new Integer(255))); + new RGB(0, 255, 255)); } } Index: CssURL.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssURL.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- CssURL.java 14 Sep 2005 15:15:33 -0000 1.5 +++ CssURL.java 25 Mar 2008 18:30:11 -0000 1.6 @@ -48,7 +48,14 @@ */ public class CssURL extends CssValue { + public static final int type = CssTypes.CSS_URL; + + public final int getType() { + return type; + } + String value; + String full = null; URL base; @@ -79,14 +86,14 @@ String urlname = s.substring(4, s.length()-1).trim(); this.base = base; - try { - CssString convert = new CssString(); - convert.set(urlname, ac); - value = (String) convert.get(); - } catch (InvalidParamException e) { +// try { +// CssString convert = new CssString(); +// convert.set(urlname, ac); +// value = (String) convert.get(); +// } catch (InvalidParamException e) { value = urlname; - } - + full = null; +// } if (!urlHeading.startsWith("url")) throw new InvalidParamException("url", s, ac); } @@ -109,7 +116,12 @@ * Returns a string representation of the object. */ public String toString() { - return "url(" + value + ")"; + if (full != null) { + return full; + } + StringBuilder sb = new StringBuilder("url("); + sb.append(value).append(')'); + return full = sb.toString(); } /** Index: CssUnicodeRange.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssUnicodeRange.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- CssUnicodeRange.java 14 Sep 2005 15:15:33 -0000 1.4 +++ CssUnicodeRange.java 25 Mar 2008 18:30:12 -0000 1.5 @@ -14,6 +14,12 @@ */ public class CssUnicodeRange extends CssValue { + public static final int type = CssTypes.CSS_UNICODE_RANGE; + + public final int getType() { + return type; + } + String value; /** Index: CssValue.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssValue.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- CssValue.java 14 Sep 2005 15:15:33 -0000 1.5 +++ CssValue.java 25 Mar 2008 18:30:12 -0000 1.6 @@ -14,8 +14,14 @@ */ public abstract class CssValue { + public static int type = CssTypes.CSS_UNKNOWN; + String cssversion; + public int getType() { + return type; + } + /** * Set the value of this value. * Index: CssIdent.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssIdent.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- CssIdent.java 20 Mar 2008 16:51:17 -0000 1.6 +++ CssIdent.java 25 Mar 2008 18:30:11 -0000 1.7 @@ -13,8 +13,14 @@ */ public class CssIdent extends CssValue { + public static final int type = CssTypes.CSS_IDENT; + private int hashcode = 0; + public final int getType() { + return type; + } + /** * Create a new CssIdent */ @@ -65,9 +71,19 @@ } /** + * Compares two values for equality. + * + * @param value The other value. + */ + public boolean equals(CssIdent value) { + return (value.hashCode() == hashCode()); + } + + /** * Returns a hashcode for this ident. */ public int hashCode() { + // we cache, as we use toLowerCase and don't store the resulting string if (hashcode == 0) { hashcode = value.toLowerCase().hashCode(); } Index: CssString.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssString.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- CssString.java 14 Sep 2005 15:15:33 -0000 1.5 +++ CssString.java 25 Mar 2008 18:30:11 -0000 1.6 @@ -17,8 +17,14 @@ */ public class CssString extends CssValue { + public static final int type = CssTypes.CSS_STRING; + String value; + public final int getType() { + return type; + } + /** * Create a new CssString */ @@ -40,10 +46,11 @@ * @exception InvalidParamException The unit is incorrect */ public void set(String s, ApplContext ac) throws InvalidParamException { - if (s.indexOf('\'') == -1 && - s.indexOf('"') == -1) { - throw new InvalidParamException("string", s, ac); - } +// if (s.indexOf('\'') == -1 && +// s.indexOf('"') == -1) { +// throw new InvalidParamException("string", s, ac); +// } +// tokenizer is taking care of the validity of the value value = s; } Index: CssLength.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssLength.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- CssLength.java 14 Sep 2005 15:15:33 -0000 1.5 +++ CssLength.java 25 Mar 2008 18:30:11 -0000 1.6 @@ -90,95 +90,102 @@ */ public class CssLength extends CssValue { - /** - * Create a new CssLength - */ - public CssLength() { - value = defaultValue; - } + public static final int type = CssTypes.CSS_LENGTH; + + public final int getType() { + return type; + } + + /** + * Create a new CssLength + */ + public CssLength() { + value = defaultValue; + } - /** - * Set the value of this length. - * - * @param s the string representation of the length. - * @param frame For errors and warnings reports. - * @exception InvalidParamException The unit is incorrect - */ - public void set(String s, ApplContext ac) throws InvalidParamException { - s = s.toLowerCase(); - int length = s.length(); - String unit = s.substring(length-2, length); - this.value = new Float(s.substring(0, length-2)); + /** + * Set the value of this length. + * + * @param s the string representation of the length. + * @param frame For errors and warnings reports. + * @exception InvalidParamException The unit is incorrect + */ + public void set(String s, ApplContext ac) throws InvalidParamException { + s = s.toLowerCase(); + int length = s.length(); + String unit = s.substring(length-2, length); + this.value = new Float(s.substring(0, length-2)); - this.unit = 2; // there is no unit by default + this.unit = 2; // there is no unit by default - if (unit.equals("gd") && (cssversion.equals("css2"))) { - throw new InvalidParamException("unit", unit, ac); - } + if (unit.equals("gd") && (cssversion.equals("css2"))) { + throw new InvalidParamException("unit", unit, ac); + } - if (value.floatValue() != 0) { - int hash = unit.hashCode(); - int i = 0; - while (i<units.length) { - if (hash == hash_units[i]) { - this.unit = i; - return; + if (value.floatValue() != 0) { + int hash = unit.hashCode(); + int i = 0; + while (i<units.length) { + if (hash == hash_units[i]) { + this.unit = i; + return; + } + i++; + } + } else { + return; } - i++; - } - } else { - return; - } - throw new InvalidParamException("unit", unit, ac); - } + throw new InvalidParamException("unit", unit, ac); + } - /** - * Returns the current value - */ - public Object get() { - return value; - } + /** + * Returns the current value + */ + public Object get() { + return value; + } - /** - * Returns the current value - */ - public String getUnit() { - return units[unit]; - } + /** + * Returns the current value + */ + public String getUnit() { + return units[unit]; + } - /** - * Returns a string representation of the object. - */ - public String toString() { - if (value.floatValue() != 0) { - return Util.displayFloat(value) + getUnit(); - } else { - return Util.displayFloat(value); - } - } + /** + * Returns a string representation of the object. + */ + public String toString() { + if (value.floatValue() != 0) { + return Util.displayFloat(value) + getUnit(); + } else { + return Util.displayFloat(value); + } + } - /** - * Compares two values for equality. - * - * @param value The other value. - */ - public boolean equals(Object value) { - return (value instanceof CssLength && - this.value.equals(((CssLength) value).value) && - unit == ((CssLength) value).unit); - } + /** + * Compares two values for equality. + * + * @param value The other value. + */ + public boolean equals(Object value) { + return (value instanceof CssLength && + this.value.equals(((CssLength) value).value) && + unit == ((CssLength) value).unit); + } - private Float value; - private int unit; - private static String[] units = { "mm", "cm", "pt", "pc", "em", "ex", "px", "in", "gd" }; - private static int[] hash_units; - private static Float defaultValue = new Float(0); + private Float value; + private int unit; + private static String[] units = { "mm", "cm", "pt", "pc", "em", + "ex", "px", "in", "gd" }; + private static int[] hash_units; + private static Float defaultValue = new Float(0); - static { - hash_units = new int[units.length]; - for (int i=0; i<units.length; i++) - hash_units[i] = units[i].hashCode(); - } + static { + hash_units = new int[units.length]; + for (int i=0; i<units.length; i++) + hash_units[i] = units[i].hashCode(); + } } Index: CssColorCSS21.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssColorCSS21.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- CssColorCSS21.java 15 May 2007 06:06:45 -0000 1.3 +++ CssColorCSS21.java 25 Mar 2008 18:30:11 -0000 1.4 @@ -29,7 +29,9 @@ } } - public CssColorCSS21(ApplContext ac, String s) throws InvalidParamException { + public CssColorCSS21(ApplContext ac, String s) + throws InvalidParamException + { setIdentColor(s, ac); } @@ -39,7 +41,6 @@ private void setIdentColor(String s, ApplContext ac) throws InvalidParamException { String lower_s = s.toLowerCase(); - int hash = lower_s.hashCode(); int indexOfColor = searchColor(hash, tableColorHash); Index: ATSCColor.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/ATSCColor.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- ATSCColor.java 15 May 2007 06:06:45 -0000 1.6 +++ ATSCColor.java 25 Mar 2008 18:30:11 -0000 1.7 @@ -6,7 +6,7 @@ // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.css.values; -import java.util.Hashtable; +import java.util.HashMap; import org.w3c.css.util.ApplContext; import org.w3c.css.util.InvalidParamException; @@ -163,7 +163,7 @@ Object color; RGBATSC rgb; - static Hashtable definedColors; + static HashMap<String,Object> definedColors; static CssIdent inherit = new CssIdent("inherit"); /** @@ -471,7 +471,7 @@ } static { - definedColors = new Hashtable(); + definedColors = new HashMap<String,Object>(); definedColors.put("black", new RGBATSC(new Integer(0), new Integer(0), Index: CssColor.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssColor.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- CssColor.java 15 May 2007 06:06:45 -0000 1.12 +++ CssColor.java 25 Mar 2008 18:30:11 -0000 1.13 @@ -7,7 +7,7 @@ package org.w3c.css.values; -import java.util.Hashtable; +import java.util.HashMap; import java.util.Vector; import org.w3c.css.util.ApplContext; @@ -164,15 +164,20 @@ public class CssColor extends CssValue implements CssColorConstants, CssOperator { [...1041 lines suppressed...] - new Integer(105))); + new RGB(105, 105, 105)); definedColors.put("lightgray", - new RGB(new Integer(211), - new Integer(211), - new Integer(211))); + new RGB(211, 211, 211)); definedColors.put("lightslategrey", - new RGB(new Integer(119), - new Integer(136), - new Integer(153))); + new RGB(119, 136, 153)); definedColors.put("slategrey", - new RGB(new Integer(112), - new Integer(128), - new Integer(144))); + new RGB(112, 128, 144)); definedColors.put("transparent", new RGBA(new Integer(0), new Integer(0), Index: CssDate.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssDate.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- CssDate.java 8 Sep 2005 12:24:10 -0000 1.3 +++ CssDate.java 25 Mar 2008 18:30:11 -0000 1.4 @@ -17,10 +17,16 @@ * @version $Revision$ */ public class CssDate extends CssValue { + + public static final int type = CssTypes.CSS_DATE; + + public final int getType() { + return type; + } - String day = new String(); - String month = new String(); - String year = new String(); + String day = new String(); + String month = new String(); + String year = new String(); /** * Create a new CssDate. Index: CssTime.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssTime.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- CssTime.java 14 Sep 2005 15:15:33 -0000 1.5 +++ CssTime.java 25 Mar 2008 18:30:11 -0000 1.6 @@ -28,6 +28,12 @@ */ public class CssTime extends CssValue { + public static final int type = CssTypes.CSS_TIME; + + public final int getType() { + return type; + } + /** * Create a new CssTime. */ Index: RGB.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/RGB.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- RGB.java 14 Sep 2005 15:15:33 -0000 1.5 +++ RGB.java 25 Mar 2008 18:30:12 -0000 1.6 @@ -16,26 +16,46 @@ public class RGB { String output = null; - Object r; - Object g; - Object b; - + int r, g, b; + float fr, fg, fb; + boolean percent = false; /** * @return Returns the percent. */ - public boolean isPercent() { + public final boolean isPercent() { return percent; } /** * @param percent The percent to set. */ - public void setPercent(boolean percent) { + public final void setPercent(boolean percent) { this.percent = percent; } + public final void setRed(int r) { + this.r = r; + } + public final void setRed(float fr) { + this.fr = fr; + } + + public final void setGreen(int g) { + this.g = g; + } + public final void setGreen(float gr) { + this.fg = fg; + } + + public final void setBlue(int b) { + this.b = b; + } + public final void setBlue(float fb) { + this.fb = fb; + } + /** * Create a new RGB */ @@ -45,21 +65,54 @@ /** * Create a new RGB with default values */ - public RGB(Object r, Object g, Object b) { + public RGB(int r, int g, int b) { this.r = r; this.g = g; this.b = b; } + + public RGB(float fr, float fg, float fb) { + this.fr = fr; + this.fg = fg; + this.fb = fb; + percent = true; + } + public boolean equals(RGB other) { + if (other != null) { + if (percent) { + if (other.percent) { + return ((fr == other.fr) && + (fg == other.fg) && + (fb == other.fb)); + } + } else { + if (!other.percent) { + return ((r == other.r) && + (g == other.g) && + (b == other.b)); + } + } + } + return false; + } /** * Returns a string representation of the object. */ public String toString() { if (output == null) { - String unit = (isPercent()) ? "%" : ""; - return "rgb(" + r + unit + ", " + g + unit + ", " + b + unit + ")"; - } else { - return output; - } + StringBuilder sb = new StringBuilder("rgb("); + if (isPercent()) { + sb.append(fr).append("%, "); + sb.append(fg).append("%, "); + sb.append(fb).append("%)"); + } else { + sb.append(r).append(", "); + sb.append(g).append(", "); + sb.append(b).append(')'); + } + output = sb.toString(); + } + return output; } } Index: CssNumber.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssNumber.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- CssNumber.java 14 Sep 2005 15:15:33 -0000 1.6 +++ CssNumber.java 25 Mar 2008 18:30:11 -0000 1.7 @@ -16,6 +16,12 @@ */ public class CssNumber extends CssValue implements CssValueFloat { + public static final int type = CssTypes.CSS_NUMBER; + + public final int getType() { + return type; + } + ApplContext ac; Float value; boolean isInt = false; Index: CssFrequency.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssFrequency.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- CssFrequency.java 14 Sep 2005 15:15:33 -0000 1.5 +++ CssFrequency.java 25 Mar 2008 18:30:11 -0000 1.6 @@ -28,6 +28,12 @@ */ public class CssFrequency extends CssValue { + public static final int type = CssTypes.CSS_FREQUENCY; + + public final int getType() { + return type; + } + /** * Create a new CssFrequency */ Index: CssPercentage.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssPercentage.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- CssPercentage.java 14 Sep 2005 15:15:33 -0000 1.5 +++ CssPercentage.java 25 Mar 2008 18:30:11 -0000 1.6 @@ -34,6 +34,12 @@ */ public class CssPercentage extends CssValue { + public static final int type = CssTypes.CSS_PERCENTAGE; + + public final int getType() { + return type; + } + static Float defaultValue = new Float(0); Float value; Index: CssAngle.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssAngle.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- CssAngle.java 14 Sep 2005 15:15:33 -0000 1.6 +++ CssAngle.java 25 Mar 2008 18:30:11 -0000 1.7 @@ -29,6 +29,12 @@ * @version $Revision$ */ public class CssAngle extends CssValue implements CssValueFloat { + public static final int type = CssTypes.CSS_ANGLE; + + public final int getType() { + return type; + } + Float value; int unit; static String[] units = { "deg", "grad", "rad" }; Index: CssExpression.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/values/CssExpression.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- CssExpression.java 17 Mar 2008 17:51:33 -0000 1.5 +++ CssExpression.java 25 Mar 2008 18:30:11 -0000 1.6 @@ -15,6 +15,10 @@ */ public class CssExpression implements CssOperator { + private Vector<ValueOperator> items = new Vector<ValueOperator>(); + private int count = 0; + private int index = 0; + /** * Add a value to the end of the expression * By default the next operator is a space @@ -34,7 +38,7 @@ * @see CssOperator */ public void setOperator(char operator) { - ((ValueOperator) items.elementAt(count-1)).operator = operator; + (items.elementAt(count-1)).operator = operator; } /** @@ -45,7 +49,7 @@ * @see CssOperator */ public void setCurrentOperator(char operator) { - ((ValueOperator) items.elementAt(index)).operator = operator; + (items.elementAt(index)).operator = operator; } /** @@ -56,7 +60,7 @@ if (index == count) return null; else - return ((ValueOperator) items.elementAt(index)).value; + return (items.elementAt(index)).value; } /** @@ -67,7 +71,7 @@ if (index+1 >= count) return null; else - return ((ValueOperator) items.elementAt(index+1)).value; + return (items.elementAt(index+1)).value; } /* Modified by Sijtsche de Jong */ @@ -79,7 +83,7 @@ if (index == count) return SPACE; else - return ((ValueOperator) items.elementAt(index)).operator; + return (items.elementAt(index)).operator; } /** @@ -151,7 +155,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); for (int i = index; i < count; i++) { - ValueOperator vo = (ValueOperator) items.elementAt(i); + ValueOperator vo = items.elementAt(i); sb.append(vo.value.toString()).append(vo.operator); } // remove the last one @@ -168,7 +172,7 @@ public String toStringFromStart() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < index; i++) { - ValueOperator vo = (ValueOperator) items.elementAt(i); + ValueOperator vo = items.elementAt(i); sb.append(vo.value.toString()).append(vo.operator); } @@ -183,8 +187,4 @@ CssValue value; char operator; } - - private Vector items = new Vector(); - private int count = 0; - private int index = 0; } --- NEW FILE: CssTypes.java --- // // $Id: CssTypes.java,v 1.1 2008/03/25 18:30:11 ylafon Exp $ // // (c) COPYRIGHT MIT, ERCIM and Keio University, 2008. // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.css.values; public class CssTypes { public static final int CSS_UNKNOWN = -1; public static final int CSS_IDENT = 0; public static final int CSS_STRING = 1; public static final int CSS_URL = 2; public static final int CSS_COLOR = 3; public static final int CSS_PERCENTAGE = 4; public static final int CSS_NUMBER = 5; public static final int CSS_LENGTH = 6; public static final int CSS_ANGLE = 7; public static final int CSS_TIME = 8; public static final int CSS_FREQUENCY = 9; public static final int CSS_RESOLUTION = 10; public static final int CSS_DATE = 11; public static final int CSS_UNICODE_RANGE = 12; }
Received on Tuesday, 25 March 2008 18:31:09 UTC