2002/css-validator/org/w3c/css/properties/css21 CssBackgroundRepeat.java,1.1,1.2

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

Modified Files:
	CssBackgroundRepeat.java 
Log Message:
ident case sensitivity

Index: CssBackgroundRepeat.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssBackgroundRepeat.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CssBackgroundRepeat.java	9 Feb 2012 17:36:31 -0000	1.1
+++ CssBackgroundRepeat.java	23 Aug 2012 21:09:08 -0000	1.2
@@ -6,9 +6,6 @@
 // Please first read the full copyright statement in file COPYRIGHT.html
 package org.w3c.css.properties.css21;
 
-import org.w3c.css.parser.CssStyle;
-import org.w3c.css.properties.css.CssProperty;
-import org.w3c.css.properties.css1.Css1Style;
 import org.w3c.css.util.ApplContext;
 import org.w3c.css.util.InvalidParamException;
 import org.w3c.css.values.CssExpression;
@@ -16,159 +13,88 @@
 import org.w3c.css.values.CssTypes;
 import org.w3c.css.values.CssValue;
 
-import java.util.HashMap;
-
 /**
- * <H4>
- * <A NAME="background-repeat">5.3.4 &nbsp;&nbsp; 'background-repeat'</A>
- * </H4>
- * <p/>
- * <EM>Value:</EM> repeat | repeat-x | repeat-y | no-repeat<BR>
- * <EM>Initial:</EM> repeat<BR>
- * <EM>Applies to:</EM> all elements<BR>
- * <EM>Inherited:</EM> no<BR>
- * <EM>Percentage values:</EM> N/A<BR>
- * <p/>
- * If a background image is specified, the value of 'background-repeat' determines
- * how/if the image is repeated.
- * <p/>
- * A value of 'repeat' means that the image is repeated both horizontally and
- * vertically. The 'repeat-x' ('repeat-y') value makes the image repeat horizontally
- * (vertically), to create a single band of images from one side to the other.
- * With a value of 'no-repeat', the image is not repeated.
- * <PRE>
- * BODY {
- * background: red url(pendant.gif);
- * background-repeat: repeat-y;
- * }
- * </PRE>
- * <p/>
- * In the example above, the image will only be repeated vertically.
- *
- * @version $Revision$
+ * @spec http://www.w3.org/TR/2011/REC-CSS2-20110607/colors.html#propdef-background-repeat
  */
 public class CssBackgroundRepeat extends org.w3c.css.properties.css.CssBackgroundRepeat {
-    // FIXME TODO is that the best way ?
-
-    public static boolean checkMatchingIdent(CssIdent ident) {
-        return allowed_values.containsValue(ident);
-    }
-    
-    private static HashMap<String, CssIdent> allowed_values;
 
-    static {
-        allowed_values = new HashMap<String, CssIdent>();
-        String[] REPEAT = {"repeat", "repeat-x", "repeat-y", "no-repeat"};
-
-        for (String aREPEAT : REPEAT) {
-            allowed_values.put(aREPEAT, CssIdent.getIdent(aREPEAT));
-        }
-    }
-
-    public CssValue value;
-
-    /**
-     * Create a new CssBackgroundRepeat
-     */
-    public CssBackgroundRepeat() {
-        value = repeat;
-    }
+	private static CssIdent[] allowed_values;
 
-    /**
-     * Set the value of the property
-     *
-     * @param expression The expression for this property
-     * @throws org.w3c.css.util.InvalidParamException The expression is incorrect
-     */
-    public CssBackgroundRepeat(ApplContext ac, CssExpression expression,
-                               boolean check) throws InvalidParamException {
+	static {
+		String[] REPEAT = {"repeat", "repeat-x", "repeat-y", "no-repeat"};
 
-        if (check && expression.getCount() > 1) {
-            throw new InvalidParamException("unrecognize", ac);
-        }
+		allowed_values = new CssIdent[REPEAT.length];
+		int i = 0;
+		for (String aREPEAT : REPEAT) {
+			allowed_values[i++] = CssIdent.getIdent(aREPEAT);
+		}
+	}
 
-        CssValue val = expression.getValue();
-        setByUser();
+	protected static boolean checkMatchingIdent(CssIdent ident) {
+		return (getMatchingIdent(ident) != null);
+	}
 
-        if (val.getType() != CssTypes.CSS_IDENT) {
-            throw new InvalidParamException("value", expression.getValue(),
-                    getPropertyName(), ac);
-        }
-        if (inherit.equals(val)) {
-            value = inherit;
-        } else {
-            value = allowed_values.get(val.toString());
-            if (value == null) {
-                throw new InvalidParamException("value", expression.getValue(),
-                        getPropertyName(), ac);
-            }
-        }
-        expression.next();
-    }
+	protected static CssIdent getMatchingIdent(CssIdent ident) {
+		for (CssIdent id : allowed_values) {
+			if (id.equals(ident)) {
+				return id;
+			}
+		}
+		return null;
+	}
 
-    public CssBackgroundRepeat(ApplContext ac, CssExpression expression)
-            throws InvalidParamException {
-        this(ac, expression, false);
-    }
+	/**
+	 * Create a new CssBackgroundRepeat
+	 */
+	public CssBackgroundRepeat() {
+		value = repeat;
+	}
 
-    /**
-     * Returns the value of this property
-     */
-    public Object get() {
-        return value;
-    }
+	/**
+	 * Set the value of the property
+	 *
+	 * @param expression The expression for this property
+	 * @throws org.w3c.css.util.InvalidParamException
+	 *          The expression is incorrect
+	 */
+	public CssBackgroundRepeat(ApplContext ac, CssExpression expression,
+							   boolean check) throws InvalidParamException {
 
-    /**
-     * Returns a string representation of the object.
-     */
-    public String toString() {
-        return value.toString();
-    }
+		if (check && expression.getCount() > 1) {
+			throw new InvalidParamException("unrecognize", ac);
+		}
 
-    // TODO FIXME get rid of this when Css1Style gets only one background
-    /**
-     * Add this property to the CssStyle.
-     *
-     * @param style The CssStyle
-     */
-    public void addToStyle(ApplContext ac, CssStyle style) {
-        org.w3c.css.properties.css.CssBackground cssBackground = ((Css1Style) style).cssBackground;
-        if (cssBackground.repeat != null)
-            style.addRedefinitionWarning(ac, this);
-        cssBackground.repeat = this;
-    }
+		CssValue val = expression.getValue();
+		setByUser();
 
-    /**
-     * 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).getBackgroundRepeat();
-        } else {
-            return ((Css1Style) style).cssBackground.repeat;
-        }
-    }
+		if (val.getType() != CssTypes.CSS_IDENT) {
+			throw new InvalidParamException("value", expression.getValue(),
+					getPropertyName(), ac);
+		}
+		if (inherit.equals(val)) {
+			value = inherit;
+		} else {
+			value = getMatchingIdent((CssIdent) val);
+			if (value == null) {
+				throw new InvalidParamException("value", expression.getValue(),
+						getPropertyName(), ac);
+			}
+		}
+		expression.next();
+	}
 
-    /**
-     * Compares two properties for equality.
-     *
-     * @param property The other property.
-     */
-    public boolean equals(CssProperty property) {
-        return (property instanceof CssBackgroundRepeat &&
-                value == ((CssBackgroundRepeat) property).value);
-    }
+	public CssBackgroundRepeat(ApplContext ac, CssExpression expression)
+			throws InvalidParamException {
+		this(ac, expression, false);
+	}
 
-    /**
-     * 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 (repeat == 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 (repeat == value);
+	}
 }
 
 

Received on Thursday, 23 August 2012 21:09:17 UTC