- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 23 Aug 2012 20:25:51 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css21
In directory hutz:/tmp/cvs-serv12421/css21
Modified Files:
CssBackgroundPosition.java
Log Message:
ident case sensitivity
Index: CssBackgroundPosition.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssBackgroundPosition.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CssBackgroundPosition.java 9 Feb 2012 17:36:31 -0000 1.1
+++ CssBackgroundPosition.java 23 Aug 2012 20:25:49 -0000 1.2
@@ -4,9 +4,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,47 +13,53 @@
import org.w3c.css.values.CssTypes;
import org.w3c.css.values.CssValue;
-import java.util.HashMap;
-
import static org.w3c.css.values.CssOperator.SPACE;
/**
- * CssBackgroundPosition<br />
- * Created: Aug 31, 2005 5:45:30 PM<br />
+ * @spec http://www.w3.org/TR/2011/REC-CSS2-20110607/colors.html#propdef-background-position
*/
public class CssBackgroundPosition extends org.w3c.css.properties.css.CssBackgroundPosition {
+ public static CssIdent[] allowed_values;
+ public static CssIdent center, top, bottom, left, right;
+ private static CssPercentage defaultPercent0, defaultPercent50;
+ private static CssPercentage defaultPercent100;
- public static boolean checkMatchingIdent(CssIdent ident) {
- return allowed_values.containsValue(ident);
- }
-
- private static final String propertyName = "background-position";
-
- public static HashMap<String, CssIdent> allowed_values;
- public static CssIdent center, top, bottom, left, right;
- private static CssPercentage defaultPercent0, defaultPercent50;
- private static CssPercentage defaultPercent100;
+ static {
+ top = CssIdent.getIdent("top");
+ bottom = CssIdent.getIdent("bottom");
+ left = CssIdent.getIdent("left");
+ right = CssIdent.getIdent("right");
+ center = CssIdent.getIdent("center");
+ allowed_values = new CssIdent[5];
+ allowed_values[0] = top;
+ allowed_values[1] = bottom;
+ allowed_values[2] = left;
+ allowed_values[3] = right;
+ allowed_values[4] = center;
- static {
- top = CssIdent.getIdent("top");
- bottom = CssIdent.getIdent("bottom");
- left = CssIdent.getIdent("left");
- right = CssIdent.getIdent("right");
- center = CssIdent.getIdent("center");
- allowed_values = new HashMap<String, CssIdent>();
- allowed_values.put("top", top);
- allowed_values.put("bottom", bottom);
- allowed_values.put("left", left);
- allowed_values.put("right", right);
- allowed_values.put("center", center);
+ defaultPercent0 = new CssPercentage(0);
+ defaultPercent50 = new CssPercentage(50);
+ defaultPercent100 = new CssPercentage(100);
+ }
- defaultPercent0 = new CssPercentage(0);
- defaultPercent50 = new CssPercentage(50);
- defaultPercent100 = new CssPercentage(100);
- }
+ public static boolean checkMatchingIdent(CssIdent ident) {
+ for (CssIdent id : allowed_values) {
+ if (id.equals(ident)) {
+ return true;
+ }
+ }
+ return false;
+ }
- public CssValue value;
+ public static CssIdent getMatchingIdent(CssIdent ident) {
+ for (CssIdent id : allowed_values) {
+ if (id.equals(ident)) {
+ return id;
+ }
+ }
+ return null;
+ }
/**
* Create a new CssBackgroundPosition
@@ -195,7 +198,7 @@
// ugly as we need to set values for equality tests
v.val_vertical = defaultPercent50;
v.val_horizontal = defaultPercent50;
- ident = allowed_values.get(ident.toString());
+ ident = getMatchingIdent(ident);
if (ident != null) {
if (isVertical(ident)) {
v.vertical = ident;
@@ -208,17 +211,16 @@
break;
}
throw new InvalidParamException("unrecognize",
- ident, propertyName, ac);
+ ident, getPropertyName(), ac);
case 2:
// one ident, two values... first MUST be horizontal
// and second vertical
CssValue val0 = v.value.get(0);
if (val0.getType() == CssTypes.CSS_IDENT) {
-
- ident = allowed_values.get(val0.toString());
+ ident = getMatchingIdent((CssIdent)val0);
if (ident == null) {
throw new InvalidParamException("unrecognize",
- ident, propertyName, ac);
+ ident, getPropertyName(), ac);
}
if (isVertical(ident)) {
throw new InvalidParamException("incompatible",
@@ -233,15 +235,20 @@
}
v.val_vertical = v.vertical;
} else {
- ident = allowed_values.get(v.value.get(1).toString());
- if (ident == null) {
- throw new InvalidParamException("unrecognize",
- ident, propertyName, ac);
- }
- if (isHorizontal(ident)) {
- throw new InvalidParamException("incompatible",
- val0, v.value.get(1), ac);
- }
+ CssValue value1 = v.value.get(1);
+ if (value1.getType() != CssTypes.CSS_IDENT) {
+ throw new InvalidParamException("unrecognize",
+ value1, getPropertyName(), ac);
+ }
+ ident = getMatchingIdent((CssIdent) value1);
+ if (ident == null) {
+ throw new InvalidParamException("unrecognize",
+ ident, getPropertyName(), ac);
+ }
+ if (isHorizontal(ident)) {
+ throw new InvalidParamException("incompatible",
+ val0, value1, ac);
+ }
v.vertical = ident;
v.val_vertical = identToPercent(ident);
// and the first value
@@ -287,35 +294,4 @@
throws InvalidParamException {
this(ac, expression, false);
}
-
- public String toString() {
- return value.toString();
- }
-
- /**
- * 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.position != null)
- style.addRedefinitionWarning(ac, this);
- cssBackground.position = this;
- }
-
- /**
- * 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).getBackgroundPosition();
- } else {
- return ((Css1Style) style).cssBackground.position;
- }
- }
-
}
Received on Thursday, 23 August 2012 20:25:53 UTC