- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 17 Dec 2009 22:08:32 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3 In directory hutz:/tmp/cvs-serv1954 Modified Files: CssColumnRule.java CssColumnRuleStyle.java Log Message: operator check for rule Index: CssColumnRuleStyle.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssColumnRuleStyle.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- CssColumnRuleStyle.java 17 Dec 2009 16:39:45 -0000 1.4 +++ CssColumnRuleStyle.java 17 Dec 2009 22:08:30 -0000 1.5 @@ -57,7 +57,6 @@ if(check && expression.getCount() > 1) { throw new InvalidParamException("unrecognize", ac); } - // we only use Css Ident part of the CssBorderStyle acceptable values if ((val.getType() != CssTypes.CSS_IDENT) || !(((CssIdent)val).equals(inherit) || Index: CssColumnRule.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssColumnRule.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- CssColumnRule.java 14 Sep 2005 15:15:04 -0000 1.2 +++ CssColumnRule.java 17 Dec 2009 22:08:30 -0000 1.3 @@ -9,51 +9,32 @@ package org.w3c.css.properties.css3; import org.w3c.css.parser.CssStyle; -import org.w3c.css.properties.css1.CssBorderBottomStyle; -import org.w3c.css.properties.css1.CssBorderBottomWidth; -import org.w3c.css.properties.css1.CssBorderLeftStyle; -import org.w3c.css.properties.css1.CssBorderLeftWidth; -import org.w3c.css.properties.css1.CssBorderRightStyle; -import org.w3c.css.properties.css1.CssBorderRightWidth; -import org.w3c.css.properties.css1.CssBorderTopStyle; -import org.w3c.css.properties.css1.CssBorderTopWidth; -import org.w3c.css.properties.css1.CssColor; import org.w3c.css.properties.css1.CssProperty; import org.w3c.css.util.ApplContext; import org.w3c.css.util.InvalidParamException; import org.w3c.css.values.CssExpression; import org.w3c.css.values.CssOperator; +import org.w3c.css.values.CssIdent; +import org.w3c.css.values.CssTypes; import org.w3c.css.values.CssValue; /** + * multicol * <P> - * <EM>Value:</EM> <border-style> || <color> || <border-width> || - * inherit<BR> - * <EM>Initial:</EM>the value of the color property<BR> - * <EM>Applies to:</EM>block-level elements<BR> + * <EM>Value:</EM> <column-rule-width> || <border-style> || + * <color> <BR> + * <EM>Initial:</EM>See individual properties<BR> + * <EM>Applies to:</EM>multicol elements<BR> * <EM>Inherited:</EM>no<BR> - * <EM>Percentages:</EM>no<BR> + * <EM>Percentages:</EM>N/A<BR> * <EM>Media:</EM>:visual */ -public class CssColumnRule extends CssProperty -implements CssOperator { - - CssValue value; - /* I should use border-width and border-style here, but I don't - * see how to implement a - * shorthand property for shorthand properties ... So I splitted it up - */ - CssBorderTopWidth btw; - CssBorderRightWidth brw; - CssBorderLeftWidth blw; - CssBorderBottomWidth bbw; - CssBorderTopStyle bts; - CssBorderRightStyle brs; - CssBorderLeftStyle bls; - CssBorderBottomStyle bbs; - CssColor color; - +public class CssColumnRule extends CssProperty implements CssOperator { + CssIdent value = null; + CssColumnRuleWidth rule_width = null; + CssColumnRuleStyle rule_style = null; + CssColumnRuleColor rule_color = null; /** * Create a new CssColumnRule @@ -71,102 +52,71 @@ boolean check) throws InvalidParamException { CssValue val = expression.getValue(); - int maxvalues = 9; - boolean correct = true; char op = SPACE; - - if (val.equals(inherit)) { - value = inherit; - expression.next(); - } else { - - while (correct && (val != null) && (maxvalues -- > 0)) { - - correct = false; - - if (btw == null) { - try { - btw = new CssBorderTopWidth(ac, expression); - correct = true; - } - catch (InvalidParamException e) { - } - } - if (!correct && bbw == null) { - try { - bbw = new CssBorderBottomWidth(ac, expression); - correct = true; - } - catch (InvalidParamException e) { - } - } - if (!correct && blw == null) { - try { - blw = new CssBorderLeftWidth(ac, expression); - correct = true; - } - catch (InvalidParamException e) { - } - } - if (!correct && brw == null) { - try { - brw = new CssBorderRightWidth(ac, expression); - correct = true; - } - catch (InvalidParamException e) { - } + int nb_val = expression.getCount(); + + if (check && nb_val > 3) { + throw new InvalidParamException("unrecognize", ac); + } + setByUser(); + + while (!expression.end()) { + boolean ok = true; + val = expression.getValue(); + op = expression.getOperator(); + if (op != SPACE) { + throw new InvalidParamException("operator", + ((new Character(op)).toString()), + ac); + } + switch (val.getType()) { + case CssTypes.CSS_FUNCTION: + case CssTypes.CSS_COLOR: + if (rule_color != null) { + throw new InvalidParamException("unrecognize", ac); } - if (!correct && color == null) { - try { - color = new CssColor(ac, expression); - correct = true; - } - catch (InvalidParamException e) { - } + rule_color = new CssColumnRuleColor(ac, expression); + break; + case CssTypes.CSS_NUMBER: + case CssTypes.CSS_LENGTH: + if (rule_width != null) { + throw new InvalidParamException("unrecognize", ac); } - - if (!correct && bts == null) { - try { - bts = new CssBorderTopStyle(ac, expression); - correct = true; - } - catch (InvalidParamException e) { + rule_width = new CssColumnRuleWidth(ac, expression); + break; + case CssTypes.CSS_IDENT: + if (inherit.equals(val)) { + if (nb_val > 1) { + throw new InvalidParamException("unrecognize", ac); } + value = inherit; + break; } - if (!correct && bbw == null) { + if (rule_color == null) { try { - bbs = new CssBorderBottomStyle(ac, expression); - correct = true; - } - catch (InvalidParamException e) { + rule_color = new CssColumnRuleColor(ac, expression); + break; + } catch (Exception ex) { } } - if (!correct && bls == null) { + if (rule_width == null) { try { - bls = new CssBorderLeftStyle(ac, expression); - correct = true; - } - catch (InvalidParamException e) { + rule_width = new CssColumnRuleWidth(ac, expression); + break; + } catch (Exception ex) { } } - if (!correct && brs == null) { + if (rule_style == null) { try { - brs = new CssBorderRightStyle(ac, expression); - correct = true; - } - catch (InvalidParamException e) { + rule_style = new CssColumnRuleStyle(ac, expression); + break; + } catch (Exception ex) { } } - - if (!correct) { - throw new InvalidParamException("value", - expression.getValue(), - getPropertyName(), ac); - } - - val = expression.getValue(); - op = expression.getOperator(); - + default: + throw new InvalidParamException("value", + expression.getValue(), + getPropertyName(), ac); } } } @@ -215,7 +165,7 @@ * Returns the name of this property */ public String getPropertyName() { - return "column-border"; + return "column-rule"; } /** @@ -229,38 +179,27 @@ * Returns a string representation of the object */ public String toString() { - - String ret = ""; - - if (btw != null) { - ret += " " + btw.toString(); + StringBuilder sb = new StringBuilder(); + boolean first = true; + if (value != null) { + return value.toString(); } - if (brw != null) { - ret += " " + brw.toString(); + if (rule_color != null) { + sb.append(rule_color); + first = false; } - if (blw != null) { - ret += " " + blw.toString(); - } - if (bbw != null) { - ret += " " + bbw.toString(); - } - if (bts != null) { - ret += " " + bts.toString(); - } - if (brs != null) { - ret += " " + brs.toString(); - } - if (bls != null) { - ret += " " + bls.toString(); - } - if (bbs != null) { - ret += " " + bbs.toString(); - } - if (color != null) { - ret += " " + color.toString(); - } - - return ret.substring(1); - + if (rule_width != null) { + if (!first) { + sb.append(' '); + } + sb.append(rule_width); + } + if (rule_style != null) { + if (!first) { + sb.append(' '); + } + sb.append(rule_style); + } + return sb.toString(); } }
Received on Thursday, 17 December 2009 22:08:34 UTC