- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 10 Aug 2012 05:02:15 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3 In directory hutz:/tmp/cvs-serv24995/w3c/css/properties/css3 Modified Files: Css3Style.java Added Files: CssFontVariantNumeric.java Log Message: added font-variant-numeric per http://www.w3.org/TR/2011/WD-css3-fonts-20111004/#propdef-font-variant-numeric Index: Css3Style.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/Css3Style.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- Css3Style.java 9 Aug 2012 17:27:34 -0000 1.28 +++ Css3Style.java 10 Aug 2012 05:02:13 -0000 1.29 @@ -34,6 +34,7 @@ import org.w3c.css.properties.css.CssFontVariantCaps; import org.w3c.css.properties.css.CssFontVariantEastAsian; import org.w3c.css.properties.css.CssFontVariantLigatures; +import org.w3c.css.properties.css.CssFontVariantNumeric; import org.w3c.css.properties.css.CssFontVariantPosition; import org.w3c.css.properties.css.CssOpacity; import org.w3c.css.util.ApplContext; @@ -153,6 +154,7 @@ public CssFontSynthesis cssFontSynthesis; public CssFontVariantEastAsian cssFontVariantEastAsian; public CssFontVariantLigatures cssFontVariantLigatures; + public CssFontVariantNumeric cssFontVariantNumeric; CssDropInitialAfterAdjust cssDropInitialAfterAdjust; CssDropInitialAfterAlign cssDropInitialAfterAlign; @@ -1627,6 +1629,15 @@ return cssFontVariantLigatures; } + public CssFontVariantNumeric getFontVariantNumeric() { + if (cssFontVariantNumeric == null) { + cssFontVariantNumeric = + (CssFontVariantNumeric) style.CascadingOrder( + new CssFontVariantNumeric(), style, selector); + } + return cssFontVariantNumeric; + } + /// public CssTextIndentCSS3 getTextIndentCSS3() { --- NEW FILE: CssFontVariantNumeric.java --- // $Id: CssFontVariantNumeric.java,v 1.1 2012/08/10 05:02:13 ylafon Exp $ // Author: Yves Lafon <ylafon@w3.org> // // (c) COPYRIGHT MIT, ERCIM and Keio University, 2012. // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.css.properties.css3; import org.w3c.css.util.ApplContext; import org.w3c.css.util.InvalidParamException; import org.w3c.css.values.CssExpression; import org.w3c.css.values.CssIdent; import org.w3c.css.values.CssOperator; import org.w3c.css.values.CssTypes; import org.w3c.css.values.CssValue; import org.w3c.css.values.CssValueList; import java.util.ArrayList; /** * @spec http://www.w3.org/TR/2011/WD-css3-fonts-20111004/#propdef-font-variant-numeric */ public class CssFontVariantNumeric extends org.w3c.css.properties.css.CssFontVariantNumeric { public static final String[] numericFigValues = {"lining-nums", "oldstyle-nums"}; public static final String[] numericSpaValues = {"proportional-nums", "tabular-nums"}; public static final String[] numericFraValues = {"diagonal-fractions", "stacked-fractions"}; public static final CssIdent normal, slashedZero; static { normal = CssIdent.getIdent("normal"); slashedZero = CssIdent.getIdent("slashed-zero"); } public static final CssIdent getNumericFigValues(CssIdent ident) { String s_id = ident.toString(); for (String s : numericFigValues) { if (s_id.equals(s)) { return ident; } } return null; } public static final CssIdent getNumericSpaValues(CssIdent ident) { String s_id = ident.toString(); for (String s : numericSpaValues) { if (s_id.equals(s)) { return ident; } } return null; } public static final CssIdent getNumericFraValues(CssIdent ident) { String s_id = ident.toString(); for (String s : numericFraValues) { if (s_id.equals(s)) { return ident; } } return null; } /** * Create a new CssFontVariantNumeric */ public CssFontVariantNumeric() { value = initial; } /** * Creates a new CssFontVariantNumeric * * @param expression The expression for this property * @throws org.w3c.css.util.InvalidParamException * Expressions are incorrect */ public CssFontVariantNumeric(ApplContext ac, CssExpression expression, boolean check) throws InvalidParamException { if (check && expression.getCount() > 4) { throw new InvalidParamException("unrecognize", ac); } setByUser(); CssValue val; char op; CssIdent fraValue = null; CssIdent figValue = null; CssIdent spaValue = null; CssIdent zerValue = null; boolean match; while (!expression.end()) { val = expression.getValue(); op = expression.getOperator(); if (val.getType() == CssTypes.CSS_IDENT) { CssIdent ident = (CssIdent) val; if (inherit.equals(ident)) { if (expression.getCount() != 1) { throw new InvalidParamException("value", val.toString(), getPropertyName(), ac); } value = inherit; } else if (normal.equals(ident)) { if (expression.getCount() != 1) { throw new InvalidParamException("value", val.toString(), getPropertyName(), ac); } value = normal; } else { // no inherit, nor normal, test the up-to-three values match = false; if (figValue == null) { figValue = getNumericFigValues(ident); match = (figValue != null); } if (!match && fraValue == null) { fraValue = getNumericFraValues(ident); match = (fraValue != null); } if (!match && spaValue == null) { spaValue = getNumericSpaValues(ident); match = (spaValue != null); } if (!match && zerValue == null) { match = slashedZero.equals(ident); if (match) { zerValue = slashedZero; } } if (!match) { throw new InvalidParamException("value", val.toString(), getPropertyName(), ac); } } } else { throw new InvalidParamException("value", val.toString(), getPropertyName(), ac); } if (op != CssOperator.SPACE) { throw new InvalidParamException("operator", ((new Character(op)).toString()), ac); } expression.next(); } // now set the right value if (expression.getCount() == 1) { // the last test is here in case value is already set // (normal or inherit) if (figValue != null) { value = figValue; } else if (fraValue != null) { value = fraValue; } else if (spaValue != null) { value = spaValue; } else if (zerValue != null) { value = zerValue; } } else { // do this to keep the same order for comparisons ArrayList<CssValue> v = new ArrayList<CssValue>(); if (figValue != null) { v.add(figValue); } if (fraValue != null) { v.add(fraValue); } if (spaValue != null) { v.add(spaValue); } if (zerValue != null) { v.add(zerValue); } value = new CssValueList(v); } } public CssFontVariantNumeric(ApplContext ac, CssExpression expression) throws InvalidParamException { this(ac, expression, false); } }
Received on Friday, 10 August 2012 05:02:18 UTC