2002/css-validator/org/w3c/css/properties/css21 CssFont.java,1.2,1.3 CssFontFamily.java,1.1,1.2 CssFontSize.java,1.1,1.2 CssFontStyle.java,1.1,1.2 CssFontWeight.java,1.1,1.2

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

Modified Files:
	CssFont.java CssFontFamily.java CssFontSize.java 
	CssFontStyle.java CssFontWeight.java 
Log Message:
case sensitivity of idents

Index: CssFontSize.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssFontSize.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CssFontSize.java	4 Aug 2012 21:17:06 -0000	1.1
+++ CssFontSize.java	23 Aug 2012 14:33:38 -0000	1.2
@@ -15,26 +15,37 @@
 import org.w3c.css.values.CssTypes;
 import org.w3c.css.values.CssValue;
 
-import java.util.HashMap;
+import java.util.Arrays;
 
 /**
  * @spec http://www.w3.org/TR/2011/REC-CSS2-20110607/fonts.html#font-size-props
  */
 public class CssFontSize extends org.w3c.css.properties.css.CssFontSize {
 
-	public static final HashMap<String,CssIdent> allowed_values;
+	public static final CssIdent[] allowed_values;
 	static final String[] absolute_values = {"xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large"};
 	static final String[] relative_values = {"smaller", "larger"};
 
 	static {
-		allowed_values = new HashMap<String, CssIdent>();
+		allowed_values = new CssIdent[absolute_values.length + relative_values.length];
+		int i = 0;
 		for (String s : absolute_values) {
-			allowed_values.put(s, CssIdent.getIdent(s));
+			allowed_values[i++] = CssIdent.getIdent(s);
 		}
 		for (String s : relative_values) {
-			allowed_values.put(s, CssIdent.getIdent(s));
+			allowed_values[i++] = CssIdent.getIdent(s);
 		}
+		Arrays.sort(allowed_values);
 	}
+
+	public static CssIdent getAllowedValue(CssIdent ident) {
+		int idx = Arrays.binarySearch(allowed_values, ident);
+		if (idx >= 0) {
+			return allowed_values[idx];
+		}
+		return null;
+	}
+
 	/**
 	 * Create a new CssFontSize
 	 */
@@ -63,7 +74,7 @@
 
 		switch (val.getType()) {
 			case CssTypes.CSS_NUMBER:
-				val = ((CssNumber)val).getLength();
+				val = ((CssNumber) val).getLength();
 			case CssTypes.CSS_LENGTH:
 				CssLength l = (CssLength) val;
 				if (!l.isPositive()) {
@@ -86,13 +97,13 @@
 					value = inherit;
 					break;
 				}
-				value = allowed_values.get(val.toString());
+				value = getAllowedValue(ident);
 				if (value == null) {
 					throw new InvalidParamException("value",
 							expression.getValue().toString(),
 							getPropertyName(), ac);
 				}
-				 break;
+				break;
 			default:
 				throw new InvalidParamException("value",
 						expression.getValue().toString(),

Index: CssFontWeight.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssFontWeight.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CssFontWeight.java	4 Aug 2012 21:17:06 -0000	1.1
+++ CssFontWeight.java	23 Aug 2012 14:33:38 -0000	1.2
@@ -13,23 +13,31 @@
 import org.w3c.css.values.CssTypes;
 import org.w3c.css.values.CssValue;
 
-import java.util.HashMap;
-
 /**
  * @spec http://www.w3.org/TR/2011/REC-CSS2-20110607/fonts.html#propdef-font-weight
  * @version $Revision$
  */
 public class CssFontWeight extends org.w3c.css.properties.css.CssFontWeight {
 
-	public static final HashMap<String,CssIdent> allowed_values;
+	public static final CssIdent[] allowed_values;
 	static final String[] _allowed_values = {"normal", "bold", "bolder", "lighter"};
 
 	static {
-		allowed_values = new HashMap<String, CssIdent>(_allowed_values.length);
-		for (String s : _allowed_values) {
-			allowed_values.put(s, CssIdent.getIdent(s));
+		allowed_values = new CssIdent[_allowed_values.length];
+		for (int i = 0; i < allowed_values.length; i++) {
+			allowed_values[i] = CssIdent.getIdent(_allowed_values[i]);
+		}
+	}
+
+	public static final CssIdent getAllowedValue(CssIdent ident) {
+		for (CssIdent id : allowed_values) {
+			if (id.equals(ident)) {
+				return id;
+			}
 		}
+		return null;
 	}
+
     /**
      * Create a new CssFontWeight
      */
@@ -83,7 +91,7 @@
 					value = inherit;
 					break;
 				}
-				value = allowed_values.get(val.toString());
+				value = getAllowedValue(ident);
 				if (value == null) {
 					throw new InvalidParamException("value",
 							val.toString(),

Index: CssFont.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssFont.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- CssFont.java	5 Aug 2012 06:22:55 -0000	1.2
+++ CssFont.java	23 Aug 2012 14:33:38 -0000	1.3
@@ -119,7 +119,7 @@
 							break;
 						}
 						// font-weight
-						v = CssFontWeight.allowed_values.get(ident.toString());
+						v = CssFontWeight.getAllowedValue(ident);
 						if (v != null) {
 							if (fontWeight != null) {
 								throw new InvalidParamException("value",
@@ -135,7 +135,7 @@
 					// check if we moved past and we now got
 					// a font-size
 					if (state == 0) {
-						CssIdent v = CssFontSize.allowed_values.get(ident.toString());
+						CssIdent v = CssFontSize.getAllowedValue(ident);
 						if (v != null) {
 							// we got a FontSize, so no more style/variant/weight
 							state = 1;

Index: CssFontStyle.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssFontStyle.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CssFontStyle.java	4 Aug 2012 21:17:06 -0000	1.1
+++ CssFontStyle.java	23 Aug 2012 14:33:38 -0000	1.2
@@ -23,7 +23,7 @@
 	public static final ArrayList<CssIdent> allowed_values;
 
 	static {
-		allowed_values = new ArrayList<CssIdent>(3);
+		allowed_values = new ArrayList<CssIdent>(_allowed_values.length);
 		for (String s : _allowed_values) {
 			allowed_values.add(CssIdent.getIdent(s));
 		}

Index: CssFontFamily.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssFontFamily.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CssFontFamily.java	4 Aug 2012 21:17:06 -0000	1.1
+++ CssFontFamily.java	23 Aug 2012 14:33:38 -0000	1.2
@@ -37,11 +37,11 @@
 	};
 
 	static {
-		genericNames = new ArrayList<CssIdent>();
+		genericNames = new ArrayList<CssIdent>(_genericNames.length);
 		for (String s : _genericNames) {
 			genericNames.add(CssIdent.getIdent(s));
 		}
-		reservedNames = new ArrayList<CssIdent>();
+		reservedNames = new ArrayList<CssIdent>(_reservedNames.length);
 		for (String s : _reservedNames) {
 			reservedNames.add(CssIdent.getIdent(s));
 		}

Received on Thursday, 23 August 2012 14:34:19 UTC