2002/css-validator/org/w3c/css/properties/css1 CssFont.java,1.9,1.10 CssFontSize.java,1.5,1.6 CssFontWeight.java,1.7,1.8

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

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

Index: CssFontSize.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/CssFontSize.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- CssFontSize.java	4 Aug 2012 21:17:05 -0000	1.5
+++ CssFontSize.java	23 Aug 2012 15:10:56 -0000	1.6
@@ -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/2008/REC-CSS1-20080411/#font-size
  */
 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()) {
@@ -81,7 +92,7 @@
 				value = p;
 				break;
 			case CssTypes.CSS_IDENT:
-				value = allowed_values.get(val.toString());
+				value = getAllowedValue((CssIdent) val);
 				if (value == null) {
 					throw new InvalidParamException("value",
 							expression.getValue().toString(),

Index: CssFontWeight.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/CssFontWeight.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- CssFontWeight.java	4 Aug 2012 21:17:05 -0000	1.7
+++ CssFontWeight.java	23 Aug 2012 15:10:56 -0000	1.8
@@ -13,37 +13,45 @@
 import org.w3c.css.values.CssTypes;
 import org.w3c.css.values.CssValue;
 
-import java.util.HashMap;
-
 /**
  * @spec http://www.w3.org/TR/2008/REC-CSS1-20080411/#font-weight
  */
 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]);
 		}
 	}
-    /**
-     * Create a new CssFontWeight
-     */
-    public CssFontWeight() {
-    }
 
-    /**
-     * Creates a new CssFontWeight
-     *
-     * @param expression The expression for this property
-     * @throws org.w3c.css.util.InvalidParamException
-     *          Expressions are incorrect
-     */
-    public CssFontWeight(ApplContext ac, CssExpression expression, boolean check)
-            throws InvalidParamException {
+	public static final CssIdent getAllowedValue(CssIdent ident) {
+		for (CssIdent id : allowed_values) {
+			if (id.equals(ident)) {
+				return id;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Create a new CssFontWeight
+	 */
+	public CssFontWeight() {
+	}
+
+	/**
+	 * Creates a new CssFontWeight
+	 *
+	 * @param expression The expression for this property
+	 * @throws org.w3c.css.util.InvalidParamException
+	 *          Expressions are incorrect
+	 */
+	public CssFontWeight(ApplContext ac, CssExpression expression, boolean check)
+			throws InvalidParamException {
 		if (check && expression.getCount() > 1) {
 			throw new InvalidParamException("unrecognize", ac);
 		}
@@ -58,7 +66,7 @@
 		switch (val.getType()) {
 			case CssTypes.CSS_NUMBER:
 				CssNumber num = (CssNumber) val;
-				switch(num.getInt()) {
+				switch (num.getInt()) {
 					case 100:
 					case 200:
 					case 300:
@@ -68,7 +76,7 @@
 					case 700:
 					case 800:
 					case 900:
-					   value = num;
+						value = num;
 						break;
 					default:
 						throw new InvalidParamException("value",
@@ -77,7 +85,7 @@
 				}
 				break;
 			case CssTypes.CSS_IDENT:
-				value = allowed_values.get(val.toString());
+				value = getAllowedValue((CssIdent) val);
 				if (value == null) {
 					throw new InvalidParamException("value",
 							val.toString(),
@@ -90,12 +98,12 @@
 						getPropertyName(), ac);
 		}
 		expression.next();
-    }
+	}
 
-    public CssFontWeight(ApplContext ac, CssExpression expression)
-            throws InvalidParamException {
-        this(ac, expression, false);
-    }
+	public CssFontWeight(ApplContext ac, CssExpression expression)
+			throws InvalidParamException {
+		this(ac, expression, false);
+	}
 
 }
 

Index: CssFont.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/CssFont.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- CssFont.java	5 Aug 2012 06:22:55 -0000	1.9
+++ CssFont.java	23 Aug 2012 15:10:56 -0000	1.10
@@ -12,7 +12,7 @@
 import org.w3c.css.values.CssTypes;
 import org.w3c.css.values.CssValue;
 
-import java.util.HashMap;
+import java.util.Arrays;
 
 import static org.w3c.css.values.CssOperator.SPACE;
 
@@ -22,16 +22,26 @@
 public class CssFont extends org.w3c.css.properties.css.CssFont {
 
 	public static final CssIdent normal;
-	public static final HashMap<String, CssIdent> systemFonts;
+	public static final CssIdent[] systemFonts;
 	static final String[] _systemFonts = {"caption", "icon", "menu",
 			"message-box", "small-caption", "status-bar"};
 
 	static {
 		normal = CssIdent.getIdent("normal");
-		systemFonts = new HashMap<String, CssIdent>();
+		systemFonts = new CssIdent[_systemFonts.length];
+		int i = 0;
 		for (String s : _systemFonts) {
-			systemFonts.put(s, CssIdent.getIdent(s));
+			systemFonts[i++] = CssIdent.getIdent(s);
+		}
+		Arrays.sort(systemFonts);
+	}
+
+	public static final CssIdent getSystemFont(CssIdent ident) {
+		int idx = Arrays.binarySearch(systemFonts, ident);
+		if (idx >= 0) {
+			return systemFonts[idx];
 		}
+		return null;
 	}
 
 	/**
@@ -73,7 +83,7 @@
 						break;
 					}
 					CssIdent ident;
-					ident = systemFonts.get(val.toString());
+					ident = getSystemFont((CssIdent) val);
 					if (ident != null) {
 						if (expression.getCount() != 1) {
 							throw new InvalidParamException("value",
@@ -119,7 +129,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 +145,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;

Received on Thursday, 23 August 2012 15:11:11 UTC