- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 27 Sep 2012 20:56:43 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css1 In directory hutz:/tmp/cvs-serv7048/css1 Modified Files: Css1Style.java CssClear.java Log Message: clear per relevant specs Index: Css1Style.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/Css1Style.java,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- Css1Style.java 27 Sep 2012 14:57:31 -0000 1.38 +++ Css1Style.java 27 Sep 2012 20:56:41 -0000 1.39 @@ -27,6 +27,7 @@ import org.w3c.css.properties.css.CssMarginBottom; import org.w3c.css.properties.css.CssMarginLeft; import org.w3c.css.properties.css.CssMarginRight; +import org.w3c.css.properties.css.CssClear; import org.w3c.css.util.ApplContext; import org.w3c.css.util.InvalidParamException; Index: CssClear.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/CssClear.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- CssClear.java 5 Jan 2010 13:49:42 -0000 1.4 +++ CssClear.java 27 Sep 2012 20:56:41 -0000 1.5 @@ -1,164 +1,95 @@ -// // $Id$ -// From Philippe Le Hegaret (Philippe.Le_Hegaret@sophia.inria.fr) +// Author: Yves Lafon <ylafon@w3.org> // -// (c) COPYRIGHT MIT and INRIA, 1997. +// (c) COPYRIGHT MIT, ERCIM and Keio University, 2012. // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.css.properties.css1; -import org.w3c.css.parser.CssStyle; -import org.w3c.css.properties.css.CssProperty; import org.w3c.css.util.ApplContext; import org.w3c.css.util.InvalidParamException; import org.w3c.css.values.CssExpression; import org.w3c.css.values.CssIdent; +import org.w3c.css.values.CssTypes; import org.w3c.css.values.CssValue; /** - * <H4> - * <A NAME="clear">5.5.26 'clear'</A> - * </H4> - * <P> - * <EM>Value:</EM> none | left | right | both<BR> - * <EM>Initial:</EM> none<BR> - * <EM>Applies to:</EM> all elements<BR> - * <EM>Inherited:</EM> no<BR> - * <EM>Percentage values:</EM> N/A<BR> - * <P> This property specifies if an element allows floating elements on its - * sides. More specifically, the value of this property lists the sides where - * floating elements are not accepted. With 'clear' set to 'left', an element - * will be moved below any floating element on the left side. With 'clear' set - * to 'none', floating elements are allowed on all sides. Example: - * <PRE> - * H1 { clear: left } - * </PRE> - * - * @version $Revision$ */ -public class CssClear extends CssProperty { - - int value; - - private static String[] CLEAR = { - "none", "left", "right", "both", "inherit" }; - private static int[] hash_values; - - /** - * Create a new CssClear - */ - public CssClear() { - // nothing to do - } + * @spec http://www.w3.org/TR/2008/REC-CSS1-20080411/#clear + */ +public class CssClear extends org.w3c.css.properties.css.CssClear { - /** - * Create a new CssClear - * - * @param expression The expression for this property - * @exception InvalidParamException Values are incorrect - */ - public CssClear(ApplContext ac, CssExpression expression, - boolean check) throws InvalidParamException { + public static final CssIdent[] allowed_values; - if(check && expression.getCount() > 1) { - throw new InvalidParamException("unrecognize", ac); + static { + String[] _allowed_values = {"none", "left", "right", "both"}; + int i = 0; + allowed_values = new CssIdent[_allowed_values.length]; + for (String s : _allowed_values) { + allowed_values[i++] = CssIdent.getIdent(s); + } } - CssValue val = expression.getValue(); - - setByUser(); - if ( val instanceof CssIdent) { - int hash = val.hashCode(); - for (int i = 0; i < CLEAR.length; i++) - if (hash_values[i] == hash) { - value = i; - expression.next(); - return; + public static final CssIdent getAllowedIdent(CssIdent ident) { + for (CssIdent id : allowed_values) { + if (id.equals(ident)) { + return id; + } } + return null; } - throw new InvalidParamException("value", expression.getValue(), - getPropertyName(), ac); - } - public CssClear(ApplContext ac, CssExpression expression) - throws InvalidParamException { - this(ac, expression, false); - } + /** + * Create a new CssClear + */ + public CssClear() { + } - /** - * Returns the value of this property - */ - public Object get() { - return CLEAR[value]; - } - /** - * Returns the name of this property - */ - public String getPropertyName() { - return "clear"; - } + /** + * Set the value of the property<br/> + * Does not check the number of values + * + * @param expression The expression for this property + * @throws org.w3c.css.util.InvalidParamException + * The expression is incorrect + */ + public CssClear(ApplContext ac, CssExpression expression) + throws InvalidParamException { + this(ac, expression, false); + } - /** - * Returns true if this property is "softly" inherited - * e.g. his value equals inherit - */ - public boolean isSoftlyInherited() { - return value == CLEAR.length - 1; - } + /** + * Set the value of the property + * + * @param expression The expression for this property + * @param check set it to true to check the number of values + * @throws org.w3c.css.util.InvalidParamException + * The expression is incorrect + */ + public CssClear(ApplContext ac, CssExpression expression, + boolean check) throws InvalidParamException { + if (check && expression.getCount() > 1) { + throw new InvalidParamException("unrecognize", ac); + } + setByUser(); - /** - * Returns a string representation of the object. - */ - public String toString() { - return CLEAR[value]; - } + CssValue val; + char op; - /** - * Add this property to the CssStyle. - * - * @param style The CssStyle - */ - public void addToStyle(ApplContext ac, CssStyle style) { - Css1Style style0 = (Css1Style) style; - if (style0.cssClear != null) - style0.addRedefinitionWarning(ac, this); - style0.cssClear = this; - } + val = expression.getValue(); + op = expression.getOperator(); - /** - * Get this property in the style. - * - * @param style The style where the property is - * @param resolve if true, resolve the style to find this property - */ - public CssProperty getPropertyInStyle(CssStyle style, boolean resolve) { - if (resolve) { - return ((Css1Style) style).getClear(); - } else { - return ((Css1Style) style).cssClear; + if (val.getType() == CssTypes.CSS_IDENT) { + value = getAllowedIdent((CssIdent) val); + if (value == null) { + throw new InvalidParamException("value", + val.toString(), + getPropertyName(), ac); + } + } else { + throw new InvalidParamException("value", + val.toString(), + getPropertyName(), ac); + } + expression.next(); } - } - - /** - * Compares two properties for equality. - * - * @param value The other property. - */ - public boolean equals(CssProperty property) { - return (property instanceof CssClear && - value == ((CssClear) property).value); - } - - /** - * Is the value of this property is a default value. - * It is used by all macro for the function <code>print</code> - */ - public boolean isDefault() { - return value == 0; - } - - static { - hash_values = new int[CLEAR.length]; - for (int i = 0; i < CLEAR.length; i++) - hash_values[i] = CLEAR[i].hashCode(); - } }
Received on Thursday, 27 September 2012 20:56:45 UTC