- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 23 Aug 2012 17:03:43 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3
In directory hutz:/tmp/cvs-serv10885/css3
Modified Files:
CssBackgroundAttachment.java
Log Message:
ident case sensitivity
Index: CssBackgroundAttachment.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssBackgroundAttachment.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CssBackgroundAttachment.java 4 Oct 2011 13:05:25 -0000 1.1
+++ CssBackgroundAttachment.java 23 Aug 2012 17:03:41 -0000 1.2
@@ -15,165 +15,167 @@
import org.w3c.css.values.CssValue;
import java.util.ArrayList;
-import java.util.HashMap;
import static org.w3c.css.values.CssOperator.COMMA;
/**
- * http://www.w3.org/TR/2009/CR-css3-background-20091217/#the-background-attachment
- * Name: background-attachment
- * Value: <attachment> [ , <attachment> ]*
- * Initial: scroll
- * Applies to: all elements
- * Inherited: no
- * Percentages: N/A
- * Media: visual
- * Computed value: as specified
- *
- * If background images are specified, this property specifies whether they
- * are fixed with regard to the viewport ('fixed') or scroll along with the
- * element ('scroll') or its contents ('local'). The property's value is given
- * as a comma-separated list of <attachment> keywords where
- *
- * <attachment> = scroll | fixed | local
+ * @spec http://www.w3.org/TR/2009/CR-css3-background-20091217/#the-background-attachment
*/
public class CssBackgroundAttachment extends org.w3c.css.properties.css.CssBackgroundAttachment {
- private static HashMap<String, CssIdent> allowed_values;
- public static CssIdent scroll;
+ private static CssIdent[] allowed_values;
- static {
- allowed_values = new HashMap<String, CssIdent>();
- scroll = CssIdent.getIdent("scroll");
- allowed_values.put("scroll", scroll);
- allowed_values.put("fixed", CssIdent.getIdent("fixed"));
- allowed_values.put("local", CssIdent.getIdent("local"));
- }
+ static {
+ allowed_values = new CssIdent[3];
+ allowed_values[0] = CssIdent.getIdent("scroll");
+ allowed_values[1] = CssIdent.getIdent("fixed");
+ allowed_values[2] = CssIdent.getIdent("local");
+ }
- public static boolean isMatchingIdent(CssIdent ident) {
- return allowed_values.containsKey(ident.toString());
- }
+ public static boolean isMatchingIdent(CssIdent ident) {
+ for (CssIdent id : allowed_values) {
+ if (id.equals(ident)) {
+ return true;
+ }
+ }
+ return false;
+ }
- Object value;
+ public static CssIdent getMatchingIdent(CssIdent ident) {
+ for (CssIdent id : allowed_values) {
+ if (id.equals(ident)) {
+ return id;
+ }
+ }
+ return null;
+ }
- /**
- * Create a new CssBackgroundAttachment
- */
- public CssBackgroundAttachment() {
- value = scroll;
- }
+ Object value;
- public void set(Object val) {
- value = val;
- }
+ /**
+ * Create a new CssBackgroundAttachment
+ */
+ public CssBackgroundAttachment() {
+ value = initial;
+ }
- /**
- * Creates a new CssBackgroundAttachment
- *
- * @param ac the context
- * @param expression The expression for this property
- * @param check if some length checking is required
- * @throws org.w3c.css.util.InvalidParamException Values are incorrect
- */
- public CssBackgroundAttachment(ApplContext ac, CssExpression expression,
- boolean check) throws InvalidParamException {
+ public void set(Object val) {
+ value = val;
+ }
- ArrayList<CssValue> values = new ArrayList<CssValue>();
- char op;
- CssValue val;
+ /**
+ * Creates a new CssBackgroundAttachment
+ *
+ * @param ac the context
+ * @param expression The expression for this property
+ * @param check if some length checking is required
+ * @throws org.w3c.css.util.InvalidParamException
+ * Values are incorrect
+ */
+ public CssBackgroundAttachment(ApplContext ac, CssExpression expression,
+ boolean check) throws InvalidParamException {
- setByUser();
+ ArrayList<CssValue> values = new ArrayList<CssValue>();
+ char op;
+ CssValue val;
- while (!expression.end()) {
- val = expression.getValue();
- op = expression.getOperator();
- if (val.getType() != CssTypes.CSS_IDENT) {
- throw new InvalidParamException("value", val,
- getPropertyName(), ac);
- }
- if (inherit.equals(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 {
- // check that it's in the allowed values
- CssValue new_val = allowed_values.get(val.toString());
- if (new_val == null) {
- throw new InvalidParamException("value", val,
- getPropertyName(), ac);
- }
- values.add(new_val);
- }
- expression.next();
- // and check that values are separated by commas
- if (!expression.end() && (op != COMMA)) {
- throw new InvalidParamException("operator",
- ((new Character(op)).toString()), ac);
- }
- }
+ setByUser();
- if (values.size() == 1) {
- value = values.get(0);
- } else {
- value = values;
- }
- }
+ while (!expression.end()) {
+ val = expression.getValue();
+ op = expression.getOperator();
+ if (val.getType() != CssTypes.CSS_IDENT) {
+ throw new InvalidParamException("value", val,
+ getPropertyName(), ac);
+ }
+ if (inherit.equals(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 {
+ // check that it's in the allowed values
+ CssValue new_val = getMatchingIdent((CssIdent) val);
+ if (new_val == null) {
+ throw new InvalidParamException("value", val,
+ getPropertyName(), ac);
+ }
+ values.add(new_val);
+ }
+ expression.next();
+ // and check that values are separated by commas
+ if (!expression.end() && (op != COMMA)) {
+ throw new InvalidParamException("operator",
+ ((new Character(op)).toString()), ac);
+ }
+ }
- public CssBackgroundAttachment(ApplContext ac, CssExpression expression)
- throws InvalidParamException {
- this(ac, expression, false);
- }
+ if (values.size() == 1) {
+ value = values.get(0);
+ } else {
+ value = values;
+ }
+ }
- /**
- * Returns the value of this property
- */
- public Object get() {
- return value;
- }
+ public CssBackgroundAttachment(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 (inherit == value);
- }
+ /**
+ * Returns the value of this property
+ */
+ public Object get() {
+ return 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();
- }
+ /**
+ * Returns true if this property is "softly" inherited
+ * e.g. his value equals inherit
+ */
+ public boolean isSoftlyInherited() {
+ return (inherit == value);
+ }
- /**
- * Compares two properties for equality.
- *
- * @param property The other property.
- */
- public boolean equals(CssProperty property) {
- return (property instanceof CssBackgroundAttachment &&
- value.equals(((CssBackgroundAttachment) property).value));
- }
+ /**
+ * Returns a string representation of the object.
+ */
+ public String toString() {
+ if (value instanceof ArrayList) {
+ ArrayList values = (ArrayList) value;
+ StringBuilder sb = new StringBuilder();
+ boolean addComma = false;
+ for (Object aValue : values) {
+ if (addComma) {
+ sb.append(", ");
+ } else {
+ addComma = true;
+ }
+ sb.append(aValue);
+ }
+ return sb.toString();
+ }
+ return value.toString();
+ }
- /**
- * 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 (scroll == value);
- }
+ /**
+ * Compares two properties for equality.
+ *
+ * @param property The other property.
+ */
+ public boolean equals(CssProperty property) {
+ return (property instanceof CssBackgroundAttachment &&
+ value.equals(((CssBackgroundAttachment) 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 (initial == value);
+ }
}
Received on Thursday, 23 August 2012 17:03:49 UTC