2002/css-validator/org/w3c/css/properties/css3 CssColumnCount.java,1.2,1.3

Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3
In directory hutz:/tmp/cvs-serv32347

Modified Files:
	CssColumnCount.java 
Log Message:
Fixed CssColumnCount to allow only strictly positive integers.


Index: CssColumnCount.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssColumnCount.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- CssColumnCount.java	14 Sep 2005 15:15:04 -0000	1.2
+++ CssColumnCount.java	15 Dec 2009 16:59:43 -0000	1.3
@@ -15,6 +15,7 @@
 import org.w3c.css.values.CssExpression;
 import org.w3c.css.values.CssIdent;
 import org.w3c.css.values.CssNumber;
+import org.w3c.css.values.CssTypes;
 import org.w3c.css.values.CssValue;
 
 /**
@@ -54,20 +55,36 @@
 
 	setByUser();
 	CssValue val = expression.getValue();
+	CssNumber num;
 
-	if (val.equals(inherit)) {
-	    count = val;
-	    expression.next();
-	} else if (val.equals(auto)) {
-	    count = val;
-	    expression.next();
-	} else if (val instanceof CssNumber) {
+	switch(val.getType()) {
+	case CssTypes.CSS_NUMBER:
+	    num = (CssNumber) val;
+	    if (!num.isInteger()) {
+		throw new InvalidParamException("integer",expression.getValue(),
+						getPropertyName(), ac);
+	    }
+	    if (num.getInt() <= 0) {
+		throw new InvalidParamException("strictly-positive",
+						expression.getValue(),
+						getPropertyName(), ac);
+	    }
 	    count = val;
-	    expression.next();
-	} else {
+	    break;
+	case CssTypes.CSS_IDENT:
+	    if (auto.equals(val)) {
+		count = auto;
+		break;
+	    }
+	    if (inherit.equals(val)) {
+		count = inherit;
+		break;
+	    }
+	default:
 	    throw new InvalidParamException("value", expression.getValue(),
 					    getPropertyName(), ac);
 	}
+	expression.next();
     }
 
     public CssColumnCount(ApplContext ac, CssExpression expression)
@@ -95,8 +112,7 @@
     public CssProperty getPropertyInStyle(CssStyle style, boolean resolve) {
 	if (resolve) {
 	    return ((Css3Style) style).getColumnCount();
-	}
-	else {
+	} else {
 	    return ((Css3Style) style).cssColumnCount;
 	}
     }
@@ -129,7 +145,7 @@
      * Returns true if this property is "softly" inherited
      */
     public boolean isSoftlyInherited() {
-	return count.equals(inherit);
+	return (count == inherit);
     }
 
     /**
@@ -146,5 +162,4 @@
     public boolean isDefault() {
 	return (count == auto);
     }
-
 }

Received on Tuesday, 15 December 2009 16:59:55 UTC