- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 23 Aug 2012 13:24:21 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3 In directory hutz:/tmp/cvs-serv28967 Modified Files: CssFont.java CssFontSize.java Log Message: case sensitivity of idents Index: CssFontSize.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssFontSize.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- CssFontSize.java 19 Aug 2012 17:28:25 -0000 1.2 +++ CssFontSize.java 23 Aug 2012 13:24:19 -0000 1.3 @@ -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/WD-css3-fonts-20111004/#font-size-prop */ 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 */ @@ -64,7 +75,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()) { @@ -87,13 +98,13 @@ value = inherit; break; } - value = allowed_values.get(val.toString().toLowerCase()); + 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: CssFont.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssFont.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- CssFont.java 19 Aug 2012 11:52:57 -0000 1.3 +++ CssFont.java 23 Aug 2012 13:24:19 -0000 1.4 @@ -136,7 +136,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 13:24:31 UTC