W3C home > Mailing lists > Public > www-validator-cvs@w3.org > May 2015

CVS 2002/css-validator/org/w3c/css/values

From: CVS User ylafon <cvsmail@w3.org>
Date: Mon, 18 May 2015 08:52:39 +0000
To: www-validator-cvs@w3.org
Message-Id: <E1YuGmt-0005Lw-3z@roscoe.w3.org>
Update of /sources/public/2002/css-validator/org/w3c/css/values
In directory roscoe:/var/tmp/cvs-serv20487/org/w3c/css/values

Modified Files:
	CssColor.java CssPercentage.java CssUnitsCSS3.java 
Log Message:
added q unit (absolute length) per css3-values edcopy http://dev.w3.org/csswg/css-values-3/ added calc() parsing, more to be done on type checking...

--- /sources/public/2002/css-validator/org/w3c/css/values/CssColor.java	2012/11/07 15:46:38	1.25
+++ /sources/public/2002/css-validator/org/w3c/css/values/CssColor.java	2015/05/18 08:52:38	1.26
@@ -1,5 +1,5 @@
 //
-// $Id: CssColor.java,v 1.25 2012/11/07 15:46:38 ylafon Exp $
+// $Id: CssColor.java,v 1.26 2015/05/18 08:52:38 ylafon Exp $
 // From Philippe Le Hegaret (Philippe.Le_Hegaret@sophia.inria.fr)
 //
 // (c) COPYRIGHT MIT and INRIA, 1997.
@@ -17,349 +17,371 @@
 import static org.w3c.css.values.CssOperator.COMMA;
 
 /**
- * @version $Revision: 1.25 $
+ * @version $Revision: 1.26 $
  */
 public class CssColor extends CssValue {
 
-    public static final int type = CssTypes.CSS_COLOR;
+	public static final int type = CssTypes.CSS_COLOR;
+
+	public final int getType() {
+		return type;
+	}
+
+	Object color = null;
+	RGB rgb = null;
+	RGBA rgba = null;
+	HSL hsl = null;
+	HSLA hsla = null;
+	HWB hwb = null;
+
+	/**
+	 * Create a new CssColor.
+	 */
+	public CssColor() {
+	}
+
+	/**
+	 * Create a new CssColor with a color name.
+	 *
+	 * @param s The name color.
+	 * @throws InvalidParamException the color is incorrect
+	 */
+	public CssColor(ApplContext ac, String s) throws InvalidParamException {
+		//	setIdentColor(s.toLowerCase(), ac);
+		setIdentColor(s, ac);
+	}
+
+	/**
+	 * Set the value from a defined color RBG.
+	 *
+	 * @param s the string representation of the color.
+	 * @throws InvalidParamException the color is incorrect.
+	 */
+	public void set(String s, ApplContext ac) throws InvalidParamException {
+		if (s.charAt(0) == '#') {
+			setShortRGBColor(s.toLowerCase(), ac);
+		} else {
+			setIdentColor(s, ac);
+		}
+	}
+
+	/**
+	 * Return the internal value.
+	 */
+	public Object get() {
+		if (color != null) {
+			return color;
+		} else {
+			return rgb;
+		}
+	}
+
+
+	/**
+	 * Returns a string representation of the object.
+	 */
+	public String toString() {
+		if (color != null) {
+			return color.toString();
+		} else if (rgb != null) {
+			return rgb.toString();
+		} else if (rgba != null) {
+			return rgba.toString();
+		} else if (hsl != null) {
+			return hsl.toString();
+		} else if (hsla != null) {
+			return hsla.toString();
+		} else {
+			return hwb.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);
+		}
+
+		switch (val.getType()) {
+			case CssTypes.CSS_NUMBER:
+				CssNumber number = (CssNumber) val;
+				rgb.setRed(clippedIntValue(number.getInt(), ac));
+				rgb.setPercent(false);
+				break;
+			case CssTypes.CSS_PERCENTAGE:
+				CssPercentage percent = (CssPercentage) val;
+				rgb.setRed(clippedPercentValue(percent.floatValue(), ac));
+				rgb.setPercent(true);
+				break;
+			default:
+				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);
+		}
+
+		switch (val.getType()) {
+			case CssTypes.CSS_NUMBER:
+				if (rgb.isPercent()) {
+					throw new InvalidParamException("percent", val, ac);
+				}
+				CssNumber number = (CssNumber) val;
+				rgb.setGreen(clippedIntValue(number.getInt(), ac));
+				break;
+			case CssTypes.CSS_PERCENTAGE:
+				if (!rgb.isPercent()) {
+					throw new InvalidParamException("integer", val, ac);
+				}
+				CssPercentage percent = (CssPercentage) val;
+				rgb.setGreen(clippedPercentValue(percent.floatValue(), ac));
+				break;
+			default:
+				throw new InvalidParamException("rgb", val, ac);
+		}
+
+		exp.next();
+		val = exp.getValue();
+		op = exp.getOperator();
+
+		if (val == null) {
+			throw new InvalidParamException("invalid-color", ac);
+		}
+
+		switch (val.getType()) {
+			case CssTypes.CSS_NUMBER:
+				if (rgb.isPercent()) {
+					throw new InvalidParamException("percent", val, ac);
+				}
+				CssNumber number = (CssNumber) val;
+				rgb.setBlue(clippedIntValue(number.getInt(), ac));
+				break;
+			case CssTypes.CSS_PERCENTAGE:
+				if (!rgb.isPercent()) {
+					throw new InvalidParamException("integer", val, ac);
+				}
+				CssPercentage percent = (CssPercentage) val;
+				rgb.setBlue(clippedPercentValue(percent.floatValue(), ac));
+				break;
+			default:
+				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>
+	 */
+	public void setShortRGBColor(String s, ApplContext ac)
+			throws InvalidParamException {
+		int r;
+		int g;
+		int b;
+		int v;
+		int idx;
+		boolean islong;
+
+		v = s.length();
+		islong = (v == 7);
+		if (v != 4 && !islong) {
+			throw new InvalidParamException("rgb", s, ac);
+		}
+		idx = 1;
+		r = Character.digit(s.charAt(idx++), 16);
+		if (r < 0) {
+			throw new InvalidParamException("rgb", s, ac);
+		}
+		if (islong) {
+			v = Character.digit(s.charAt(idx++), 16);
+			if (v < 0) {
+				throw new InvalidParamException("rgb", s, ac);
+			}
+			r = (r << 4) + v;
+		} else {
+			r |= (r << 4);
+		}
+		g = Character.digit(s.charAt(idx++), 16);
+		if (g < 0) {
+			throw new InvalidParamException("rgb", s, ac);
+		}
+		if (islong) {
+			v = Character.digit(s.charAt(idx++), 16);
+			if (v < 0) {
+				throw new InvalidParamException("rgb", s, ac);
+			}
+			g = (g << 4) + v;
+		} else {
+			g |= (g << 4);
+		}
+		b = Character.digit(s.charAt(idx), 16);
+		if (b < 0) {
+			throw new InvalidParamException("rgb", s, ac);
+		}
+		if (islong) {
+			v = Character.digit(s.charAt(++idx), 16);
+			if (v < 0) {
+				throw new InvalidParamException("rgb", s, ac);
+			}
+			b = (b << 4) + v;
+		} else {
+			b |= (b << 4);
+		}
 
-    public final int getType() {
-        return type;
-    }
-
-    Object color = null;
-    RGB rgb = null;
-    RGBA rgba = null;
-    HSL hsl = null;
-    HSLA hsla = null;
-
-    /**
-     * Create a new CssColor.
-     */
-    public CssColor() {
-    }
-
-    /**
-     * Create a new CssColor with a color name.
-     *
-     * @param s The name color.
-     * @throws InvalidParamException the color is incorrect
-     */
-    public CssColor(ApplContext ac, String s) throws InvalidParamException {
-        //	setIdentColor(s.toLowerCase(), ac);
-        setIdentColor(s, ac);
-    }
-
-    /**
-     * Set the value from a defined color RBG.
-     *
-     * @param s the string representation of the color.
-     * @throws InvalidParamException the color is incorrect.
-     */
-    public void set(String s, ApplContext ac) throws InvalidParamException {
-        if (s.charAt(0) == '#') {
-            setShortRGBColor(s.toLowerCase(), ac);
-        } else {
-            setIdentColor(s, ac);
-        }
-    }
-
-    /**
-     * Return the internal value.
-     */
-    public Object get() {
-        if (color != null) {
-            return color;
-        } else {
-            return rgb;
-        }
-    }
-
-
-    /**
-     * Returns a string representation of the object.
-     */
-    public String toString() {
-        if (color != null) {
-            return color.toString();
-        } else if (rgba != null) {
-            return rgba.toString();
-        } else if (hsl != null) {
-            return hsl.toString();
-        } else if (hsla != null) {
-            return hsla.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);
-        }
-
-        switch (val.getType()) {
-            case CssTypes.CSS_NUMBER:
-                CssNumber number = (CssNumber) val;
-                rgb.setRed(clippedIntValue(number.getInt(), ac));
-                rgb.setPercent(false);
-                break;
-            case CssTypes.CSS_PERCENTAGE:
-                CssPercentage percent = (CssPercentage) val;
-                rgb.setRed(clippedPercentValue(percent.floatValue(), ac));
-                rgb.setPercent(true);
-                break;
-            default:
-                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);
-        }
-
-        switch (val.getType()) {
-            case CssTypes.CSS_NUMBER:
-                if (rgb.isPercent()) {
-                    throw new InvalidParamException("percent", val, ac);
-                }
-                CssNumber number = (CssNumber) val;
-                rgb.setGreen(clippedIntValue(number.getInt(), ac));
-                break;
-            case CssTypes.CSS_PERCENTAGE:
-                if (!rgb.isPercent()) {
-                    throw new InvalidParamException("integer", val, ac);
-                }
-                CssPercentage percent = (CssPercentage) val;
-                rgb.setGreen(clippedPercentValue(percent.floatValue(), ac));
-                break;
-            default:
-                throw new InvalidParamException("rgb", val, ac);
-        }
-
-        exp.next();
-        val = exp.getValue();
-        op = exp.getOperator();
-
-        if (val == null) {
-            throw new InvalidParamException("invalid-color", ac);
-        }
-
-        switch (val.getType()) {
-            case CssTypes.CSS_NUMBER:
-                if (rgb.isPercent()) {
-                    throw new InvalidParamException("percent", val, ac);
-                }
-                CssNumber number = (CssNumber) val;
-                rgb.setBlue(clippedIntValue(number.getInt(), ac));
-                break;
-            case CssTypes.CSS_PERCENTAGE:
-                if (!rgb.isPercent()) {
-                    throw new InvalidParamException("integer", val, ac);
-                }
-                CssPercentage percent = (CssPercentage) val;
-                rgb.setBlue(clippedPercentValue(percent.floatValue(), ac));
-                break;
-            default:
-                throw new InvalidParamException("rgb", val, ac);
-        }
-
-        exp.next();
-        if (exp.getValue() != null) {
-            throw new InvalidParamException("rgb", exp.getValue(), ac);

[963 lines skipped]
--- /sources/public/2002/css-validator/org/w3c/css/values/CssPercentage.java	2012/12/17 15:26:59	1.18
+++ /sources/public/2002/css-validator/org/w3c/css/values/CssPercentage.java	2015/05/18 08:52:38	1.19
@@ -1,5 +1,5 @@
 //
-// $Id: CssPercentage.java,v 1.18 2012/12/17 15:26:59 ylafon Exp $
+// $Id: CssPercentage.java,v 1.19 2015/05/18 08:52:38 ylafon Exp $
 // From Philippe Le Hegaret (Philippe.Le_Hegaret@sophia.inria.fr)
 //
 // (c) COPYRIGHT MIT, ERCIM and Keio University, 2010.
@@ -33,7 +33,7 @@
  * In all inherited CSS1 properties, if the value is specified as a percentage,
  * child elements inherit the resultant value, not the percentage value.
  *
- * @version $Revision: 1.18 $
+ * @version $Revision: 1.19 $
  */
 public class CssPercentage extends CssCheckableValue {
 
@@ -113,6 +113,13 @@
 	}
 
 	/**
+	 * Returns the real value
+	 */
+	public BigDecimal getValue() {
+		return value;
+	}
+
+	/**
 	 * Returns true is the value is positive of null
 	 *
 	 * @return a boolean
--- /sources/public/2002/css-validator/org/w3c/css/values/CssUnitsCSS3.java	2013/06/12 09:51:00	1.8
+++ /sources/public/2002/css-validator/org/w3c/css/values/CssUnitsCSS3.java	2015/05/18 08:52:39	1.9
@@ -1,4 +1,4 @@
-// $Id: CssUnitsCSS3.java,v 1.8 2013/06/12 09:51:00 ylafon Exp $
+// $Id: CssUnitsCSS3.java,v 1.9 2015/05/18 08:52:39 ylafon Exp $
 // Author: Yves Lafon <ylafon@w3.org>
 //
 // (c) COPYRIGHT MIT, ERCIM and Keio University, 2012.
@@ -20,7 +20,7 @@
 	};
 
 	private static final String[] absolute_length_units = {
-			"in", "cm", "mm", "pt", "pc", "px"
+			"in", "cm", "mm", "pt", "pc", "px", "q"
 	};
 
 	public static final String[] angle_units = {
Received on Monday, 18 May 2015 08:52:41 UTC

This archive was generated by hypermail 2.3.1 : Monday, 18 May 2015 08:52:41 UTC