2002/css-validator/org/w3c/css/properties/css21 CssBorderCSS21.java,1.2,1.3 CssBorderTopCSS21.java,1.2,1.3

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

Modified Files:
	CssBorderCSS21.java CssBorderTopCSS21.java 
Log Message:
various code clarification/updates

Index: CssBorderTopCSS21.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssBorderTopCSS21.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- CssBorderTopCSS21.java	14 Sep 2005 15:14:58 -0000	1.2
+++ CssBorderTopCSS21.java	25 Mar 2008 18:43:30 -0000	1.3
@@ -10,6 +10,7 @@
 import org.w3c.css.util.ApplContext;
 import org.w3c.css.util.InvalidParamException;
 import org.w3c.css.values.CssExpression;
+import org.w3c.css.values.CssTypes;
 import org.w3c.css.values.CssValue;
 
 /**
@@ -34,7 +35,7 @@
     public CssBorderTopCSS21(ApplContext ac, CssExpression expression,
 	    boolean check) throws InvalidParamException {
 	CssValue val = null;
-	char op = SPACE;
+	char op;
 	boolean find = true;
 
 	if(check && expression.getCount() > 3) {
@@ -46,42 +47,60 @@
 	setByUser();
 
 	while (find) {
-	    find = false;
 	    val = expression.getValue();
-	    op = expression.getOperator();
 	    if (val == null)
 		break;
-
-	    // if there are many values, we can't have inherit as one of them
-	    if(manyValues && val.equals(inherit)) {
-		throw new InvalidParamException("unrecognize", null, null, ac);
-	    }
-
+	    op = expression.getOperator();
 	    if (op != SPACE)
 		throw new InvalidParamException("operator",
-						((new Character(op)).toString()),
-						ac);
-	    if (getWidth() == null) {
-		try {
+						Character.toString(op),
+						ac);	 
+	    switch (val.getType()) {
+	    case CssTypes.CSS_COLOR:
+		if (getColor() == null) {
+		    // throws an exception if the value is not valid
+		    setColor(new CssBorderTopColorCSS21(ac, expression));
+		    continue;
+		}
+		break;
+	    case CssTypes.CSS_NUMBER:
+	    case CssTypes.CSS_LENGTH:
+		if (getWidth() == null) {
 		    setWidth(new CssBorderTopWidthCSS2(ac, expression));
-		    find = true;
-		} catch(InvalidParamException e){
-		    // nothing to do, style will test this value
+		    continue;
 		}
-	    }
-	    if (!find && getStyle() == null) {
-		try {
-		    setStyle(new CssBorderTopStyleCSS2(ac, expression));
-		    find = true;
-		} catch(InvalidParamException e){
-		    // nothing to do, color will test this value
+		break;
+	    case CssTypes.CSS_IDENT:
+		if(manyValues && inherit.equals(val)) {
+		    throw new InvalidParamException("unrecognize", null, 
+						    null, ac);
 		}
+		if (getWidth() == null) {
+		    try {
+			setWidth(new CssBorderTopWidthCSS2(ac, expression));
+			continue;
+		    } catch(InvalidParamException e){
+			// nothing to do, color will test this value
+		    }
+		}
+		if (getStyle() == null) {
+		    try {
+			setStyle(new CssBorderTopStyleCSS2(ac, expression));
+			continue;
+		    } catch(InvalidParamException e){
+			// nothing to do, color will test this value
+		    }
+		}
+		if (getColor() == null) {
+		    // throws an exception if the value is not valid
+		    setColor(new CssBorderTopColorCSS21(ac, expression));
+		    continue;
+		}
+	    default:
+		find = false;
 	    }
-	    if (!find && getColor() == null) {
-		// throws an exception if the value is not valid
-		setColor(new CssBorderTopColorCSS21(ac, expression));
-		find = true;
-	    }
+	    throw new InvalidParamException("unrecognize", null, 
+					    null, ac);
 	}
     }
 

Index: CssBorderCSS21.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssBorderCSS21.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- CssBorderCSS21.java	14 Sep 2005 15:14:58 -0000	1.2
+++ CssBorderCSS21.java	25 Mar 2008 18:43:30 -0000	1.3
@@ -62,33 +62,32 @@
 	setBottom(new CssBorderBottomCSS21());
 	setLeft(new CssBorderLeftCSS21());
 
-	CssBorderTopWidthCSS2 w = getTop().getWidth2();
-	CssBorderTopStyleCSS2 s = getTop().getStyle2();
-	CssBorderTopColorCSS2 c = getTop().getColor2();
+	CssBorderTopCSS21 top = (CssBorderTopCSS21) getTop();
+	CssBorderRightCSS21 right = (CssBorderRightCSS21) getRight();
+	CssBorderLeftCSS21 left = (CssBorderLeftCSS21) getLeft();
+	CssBorderBottomCSS21 bottom = (CssBorderBottomCSS21) getBottom();
+	
+	CssBorderTopWidthCSS2 w = top.getWidth2();
+	CssBorderTopStyleCSS2 s = top.getStyle2();
+	CssBorderTopColorCSS2 c = top.getColor2();
 
 	if(w != null) {
-	    getRight().setWidth(
-		new CssBorderRightWidthCSS2((CssBorderFaceWidthCSS2) w.get()));
-	    getLeft().setWidth(
-		new CssBorderLeftWidthCSS2((CssBorderFaceWidthCSS2) w.get()));
-	    getBottom().setWidth(
-		new CssBorderBottomWidthCSS2((CssBorderFaceWidthCSS2) w.get()));
+	    CssBorderFaceWidthCSS2 bfw = (CssBorderFaceWidthCSS2) w.get();
+	    right.setWidth(new CssBorderRightWidthCSS2(bfw));
+	    left.setWidth(new CssBorderLeftWidthCSS2(bfw));
+	    bottom.setWidth(new CssBorderBottomWidthCSS2(bfw));
 	}
 	if(s != null) {
-	    getRight().setStyle(
-		new CssBorderRightStyleCSS2((CssBorderFaceStyleCSS2) s.get()));
-	    getLeft().setStyle(
-		new CssBorderLeftStyleCSS2((CssBorderFaceStyleCSS2) s.get()));
-	    getBottom().setStyle(
-		new CssBorderBottomStyleCSS2((CssBorderFaceStyleCSS2) s.get()));
+	    CssBorderFaceStyleCSS2 bfs = (CssBorderFaceStyleCSS2) s.get();
+	    right.setStyle(new CssBorderRightStyleCSS2(bfs));
+	    left.setStyle(new CssBorderLeftStyleCSS2(bfs));
+	    bottom.setStyle(new CssBorderBottomStyleCSS2(bfs));
 	}
 	if(c != null) {
-	    getRight().setColor(
-		new CssBorderRightColorCSS21((CssBorderFaceColorCSS21) c.get()));
-	    getLeft().setColor(
-		new CssBorderLeftColorCSS21((CssBorderFaceColorCSS21) c.get()));
-	    getBottom().setColor(
-		new CssBorderBottomColorCSS21((CssBorderFaceColorCSS21) c.get()));
+	    CssBorderFaceColorCSS21 bfc = (CssBorderFaceColorCSS21) c.get();
+	    right.setColor(new CssBorderRightColorCSS21(bfc));
+	    left.setColor(new CssBorderLeftColorCSS21(bfc));
+	    bottom.setColor(new CssBorderBottomColorCSS21(bfc));
 	}
     }
 

Received on Tuesday, 25 March 2008 18:44:04 UTC