- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 24 Aug 2012 06:04:30 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3
In directory hutz:/tmp/cvs-serv9373/css3
Modified Files:
CssBackgroundRepeat.java
Log Message:
ident case sensitivity
Index: CssBackgroundRepeat.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssBackgroundRepeat.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CssBackgroundRepeat.java 4 Oct 2011 13:05:25 -0000 1.1
+++ CssBackgroundRepeat.java 24 Aug 2012 06:04:28 -0000 1.2
@@ -15,220 +15,236 @@
import org.w3c.css.values.CssValueList;
import java.util.ArrayList;
-import java.util.HashMap;
import static org.w3c.css.values.CssOperator.COMMA;
import static org.w3c.css.values.CssOperator.SPACE;
/**
- * http://www.w3.org/TR/2009/CR-css3-background-20091217/#the-background-repeat
- * <p/>
- * Name: background-repeat
- * Value: <repeat-style> [ , <repeat-style> ]*
- * Initial: repeat
- * Applies to: all elements
- * Inherited: no
- * Percentages: N/A
- * Media: visual
- * Computed value: as specified
- * <p/>
- * Specifies how background images are tiled after they have been sized and
- * positioned. Where
- * <p/>
- * <repeat-style> = repeat-x | repeat-y | [repeat | space |
- * round | no-repeat]{1,2}
+ * @spec http://www.w3.org/TR/2009/CR-css3-background-20091217/#the-background-repeat
*/
public class CssBackgroundRepeat extends org.w3c.css.properties.css.CssBackgroundRepeat {
- public final static CssIdent repeat;
- private static HashMap<String, CssIdent> allowed_simple_values;
- private static HashMap<String, CssIdent> allowed_double_values;
+ public final static CssIdent repeat;
+ private static CssIdent[] allowed_simple_values;
+ private static CssIdent[] allowed_double_values;
- static {
- allowed_simple_values = new HashMap<String, CssIdent>();
- allowed_double_values = new HashMap<String, CssIdent>();
- String[] REPEAT = {"repeat", "space", "round", "no-repeat"};
+ static {
+ String[] REPEAT = {"repeat", "space", "round", "no-repeat"};
- allowed_simple_values.put("repeat-x", CssIdent.getIdent("repeat-x"));
- allowed_simple_values.put("repeat-y", CssIdent.getIdent("repeat-y"));
+ allowed_simple_values = new CssIdent[2];
- for (String aREPEAT : REPEAT) {
- allowed_double_values.put(aREPEAT, CssIdent.getIdent(aREPEAT));
- }
- repeat = CssIdent.getIdent("repeat");
- }
+ allowed_simple_values[0] = CssIdent.getIdent("repeat-x");
+ allowed_simple_values[1] = CssIdent.getIdent("repeat-y");
- public static boolean isMatchingIdent(CssIdent ident) {
- String id = ident.toString();
+ allowed_double_values = new CssIdent[REPEAT.length];
- return (allowed_simple_values.containsKey(id) ||
- allowed_double_values.containsKey(id));
- }
+ int i = 0;
+ for (String aREPEAT : REPEAT) {
+ allowed_double_values[i++] = CssIdent.getIdent(aREPEAT);
+ }
+ repeat = CssIdent.getIdent("repeat");
+ }
- public Object value;
+ public static boolean isMatchingIdent(CssIdent ident) {
+ return (getMatchingIdent(ident) != null);
+ }
- /**
- * Create a new CssBackgroundRepeat
- */
- public CssBackgroundRepeat() {
- value = repeat;
- }
+ public static CssIdent getMatchingIdent(CssIdent ident) {
+ for (CssIdent id : allowed_simple_values) {
+ if (id.equals(ident)) {
+ return ident;
+ }
+ }
+ for (CssIdent id : allowed_double_values) {
+ if (id.equals(ident)) {
+ return ident;
+ }
+ }
+ return null;
+ }
- /**
- * Set the value of the property
- *
- * @param ac the context
- * @param expression The expression for this property
- * @param check is length checking needed
- * @throws org.w3c.css.util.InvalidParamException The expression is incorrect
- */
- public CssBackgroundRepeat(ApplContext ac, CssExpression expression,
- boolean check) throws InvalidParamException {
+ public static CssIdent getSimpleValue(CssIdent ident) {
+ for (CssIdent id : allowed_simple_values) {
+ if (id.equals(ident)) {
+ return ident;
+ }
+ }
+ return null;
+ }
- ArrayList<CssValue> values = new ArrayList<CssValue>();
- boolean is_complete = true;
- CssValue val;
- CssValueList vl = null;
- char op;
+ public static CssIdent getDoubleValue(CssIdent ident) {
+ for (CssIdent id : allowed_double_values) {
+ if (id.equals(ident)) {
+ return ident;
+ }
+ }
+ return null;
+ }
- setByUser();
+ public Object value;
- while (!expression.end()) {
- val = expression.getValue();
- op = expression.getOperator();
+ /**
+ * Create a new CssBackgroundRepeat
+ */
+ public CssBackgroundRepeat() {
+ value = repeat;
+ }
- // not an ident? fail
- if (val.getType() != CssTypes.CSS_IDENT) {
- throw new InvalidParamException("value", expression.getValue(),
- getPropertyName(), ac);
- }
+ /**
+ * Set the value of the property
+ *
+ * @param ac the context
+ * @param expression The expression for this property
+ * @param check is length checking needed
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssBackgroundRepeat(ApplContext ac, CssExpression expression,
+ boolean check) throws InvalidParamException {
- CssIdent id_val = (CssIdent) val;
- if (inherit.equals(id_val)) {
- // if we got inherit after other values, fail
- // if we got more than one value... fail
- if ((values.size() > 0) || (expression.getCount() > 1)) {
- throw new InvalidParamException("value", val,
- getPropertyName(), ac);
- }
- values.add(inherit);
- } else {
- String id_value = id_val.toString();
- CssIdent new_val;
- // check values that must be alone
- new_val = allowed_simple_values.get(id_value);
- if (new_val != null) {
- // if we already have a double value... it's an error
- if (!is_complete) {
- throw new InvalidParamException("value",
- val, getPropertyName(), ac);
- }
- values.add(new_val);
- is_complete = true;
- } else {
- // the the one that may come in pairs
- new_val = allowed_double_values.get(id_value);
- // not an allowed value !
- if (new_val == null) {
- throw new InvalidParamException("value",
- val, getPropertyName(), ac);
- }
- if (is_complete) {
- vl = new CssValueList();
- vl.add(new_val);
- } else {
- vl.add(new_val);
- values.add(vl);
- }
- is_complete = !is_complete;
- }
- }
+ ArrayList<CssValue> values = new ArrayList<CssValue>();
+ boolean is_complete = true;
+ CssValue val;
+ CssValueList vl = null;
+ char op;
- expression.next();
- if (!expression.end()) {
- // incomplete value followed by a comma... it's complete!
- if (!is_complete && (op == COMMA)) {
- values.add(vl);
- is_complete = true;
- }
- // complete values are separated by a comma, otherwise space
- if ((is_complete && (op != COMMA)) ||
- (!is_complete && (op != SPACE))) {
- throw new InvalidParamException("operator",
- ((new Character(op)).toString()), ac);
- }
- }
- }
- // if we reach the end in a value that can come in pair
- if (!is_complete) {
- values.add(vl);
- }
- if (values.size() == 1) {
- value = values.get(0);
- } else {
- value = values;
- }
- }
+ setByUser();
+ while (!expression.end()) {
+ val = expression.getValue();
+ op = expression.getOperator();
- public CssBackgroundRepeat(ApplContext ac, CssExpression expression)
- throws InvalidParamException {
- this(ac, expression, false);
- }
+ // not an ident? fail
+ if (val.getType() != CssTypes.CSS_IDENT) {
+ throw new InvalidParamException("value", expression.getValue(),
+ getPropertyName(), ac);
+ }
- /**
- * Returns the value of this property
- */
+ CssIdent id_val = (CssIdent) val;
+ if (inherit.equals(id_val)) {
+ // if we got inherit after other values, fail
+ // if we got more than one value... fail
+ if ((values.size() > 0) || (expression.getCount() > 1)) {
+ throw new InvalidParamException("value", val,
+ getPropertyName(), ac);
+ }
+ values.add(inherit);
+ } else {
+ CssIdent new_val;
+ // check values that must be alone
+ new_val = getSimpleValue(id_val);
+ if (new_val != null) {
+ // if we already have a double value... it's an error
+ if (!is_complete) {
+ throw new InvalidParamException("value",
+ val, getPropertyName(), ac);
+ }
+ values.add(new_val);
+ is_complete = true;
+ } else {
+ // the the one that may come in pairs
+ new_val = getDoubleValue(id_val);
+ // not an allowed value !
+ if (new_val == null) {
+ throw new InvalidParamException("value",
+ val, getPropertyName(), ac);
+ }
+ if (is_complete) {
+ vl = new CssValueList();
+ vl.add(new_val);
+ } else {
+ vl.add(new_val);
+ values.add(vl);
+ }
+ is_complete = !is_complete;
+ }
+ }
- public Object get() {
- return value;
- }
+ expression.next();
+ if (!expression.end()) {
+ // incomplete value followed by a comma... it's complete!
+ if (!is_complete && (op == COMMA)) {
+ values.add(vl);
+ is_complete = true;
+ }
+ // complete values are separated by a comma, otherwise space
+ if ((is_complete && (op != COMMA)) ||
+ (!is_complete && (op != SPACE))) {
+ throw new InvalidParamException("operator",
+ ((new Character(op)).toString()), ac);
+ }
+ }
+ }
+ // if we reach the end in a value that can come in pair
+ if (!is_complete) {
+ values.add(vl);
+ }
+ if (values.size() == 1) {
+ value = values.get(0);
+ } else {
+ value = values;
+ }
+ }
- public void set(Object val) {
- value = val;
- }
- /**
- * Returns true if this property is "softly" inherited
- * e.g. his value equals inherit
- */
- public boolean isSoftlyInherited() {
- return (inherit == value);
- }
+ public CssBackgroundRepeat(ApplContext ac, CssExpression expression)
+ throws InvalidParamException {
+ this(ac, expression, false);
+ }
- /**
- * Returns a string representation of the object.
- */
- public String toString() {
- if (value instanceof ArrayList) {
- ArrayList values = (ArrayList) value;
- StringBuilder sb = new StringBuilder();
- for (Object aValue : values) {
- sb.append(aValue.toString()).append(", ");
- }
- sb.setLength(sb.length() - 2);
- return sb.toString();
- }
- return value.toString();
- }
+ /**
+ * Returns the value of this property
+ */
- /**
- * Compares two properties for equality.
- *
- * @param property The other property.
- */
- public boolean equals(CssProperty property) {
- return (property instanceof CssBackgroundRepeat &&
- value == ((CssBackgroundRepeat) property).value);
- }
+ public Object get() {
+ return 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);
- }
+ public void set(Object val) {
+ value = val;
+ }
+
+ /**
+ * Returns true if this property is "softly" inherited
+ * e.g. his value equals inherit
+ */
+ public boolean isSoftlyInherited() {
+ return (inherit == value);
+ }
+
+ /**
+ * Returns a string representation of the object.
+ */
+ public String toString() {
+ if (value instanceof ArrayList) {
+ ArrayList values = (ArrayList) value;
+ StringBuilder sb = new StringBuilder();
+ for (Object aValue : values) {
+ sb.append(aValue.toString()).append(", ");
+ }
+ sb.setLength(sb.length() - 2);
+ return sb.toString();
+ }
+ return value.toString();
+ }
+
+ /**
+ * Compares two properties for equality.
+ *
+ * @param property The other property.
+ */
+ public boolean equals(CssProperty property) {
+ return (property instanceof CssBackgroundRepeat &&
+ value == ((CssBackgroundRepeat) 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 (repeat == value);
+ }
}
Received on Friday, 24 August 2012 06:04:31 UTC