- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 09 Aug 2012 17:27:36 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3 In directory hutz:/tmp/cvs-serv27851/w3c/css/properties/css3 Modified Files: Css3Style.java Added Files: CssFontVariantLigatures.java Log Message: font-variant-ligatures per http://www.w3.org/TR/2011/WD-css3-fonts-20111004/#propdef-font-variant-ligatures Index: Css3Style.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/Css3Style.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- Css3Style.java 9 Aug 2012 08:47:45 -0000 1.27 +++ Css3Style.java 9 Aug 2012 17:27:34 -0000 1.28 @@ -33,6 +33,7 @@ import org.w3c.css.properties.css.CssFontSynthesis; 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.CssFontVariantPosition; import org.w3c.css.properties.css.CssOpacity; import org.w3c.css.util.ApplContext; @@ -151,6 +152,7 @@ public CssFontVariantPosition cssFontVariantPosition; public CssFontSynthesis cssFontSynthesis; public CssFontVariantEastAsian cssFontVariantEastAsian; + public CssFontVariantLigatures cssFontVariantLigatures; CssDropInitialAfterAdjust cssDropInitialAfterAdjust; CssDropInitialAfterAlign cssDropInitialAfterAlign; @@ -1616,6 +1618,15 @@ return cssFontVariantEastAsian; } + public CssFontVariantLigatures getFontVariantLigatures() { + if (cssFontVariantLigatures == null) { + cssFontVariantLigatures = + (CssFontVariantLigatures) style.CascadingOrder( + new CssFontVariantLigatures(), style, selector); + } + return cssFontVariantLigatures; + } + /// public CssTextIndentCSS3 getTextIndentCSS3() { --- NEW FILE: CssFontVariantLigatures.java --- // $Id: CssFontVariantLigatures.java,v 1.1 2012/08/09 17:27:34 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-ligatures */ public class CssFontVariantLigatures extends org.w3c.css.properties.css.CssFontVariantLigatures { public static final String[] commonLigValues = {"common-ligatures", "no-common-ligatures"}; public static final String[] discretionaryLigValues = {"discretionary-ligatures", "no-discretionary-ligatures"}; public static final String[] historicalLigValues = {"historical-ligatures", "no-historical-ligatures"}; public static final CssIdent normal; static { normal = CssIdent.getIdent("normal"); } public static final CssIdent getCommonLigValues(CssIdent ident) { String s_id = ident.toString(); for (String s : commonLigValues) { if (s_id.equals(s)) { return ident; } } return null; } public static final CssIdent getDiscretionaryLigValues(CssIdent ident) { String s_id = ident.toString(); for (String s : discretionaryLigValues) { if (s_id.equals(s)) { return ident; } } return null; } public static final CssIdent getHistoricalLigValues(CssIdent ident) { String s_id = ident.toString(); for (String s : historicalLigValues) { if (s_id.equals(s)) { return ident; } } return null; } /** * Create a new CssFontVariantLigatures */ public CssFontVariantLigatures() { value = initial; } /** * Creates a new CssFontVariantLigatures * * @param expression The expression for this property * @throws org.w3c.css.util.InvalidParamException * Expressions are incorrect */ public CssFontVariantLigatures(ApplContext ac, CssExpression expression, boolean check) throws InvalidParamException { if (check && expression.getCount() > 3) { throw new InvalidParamException("unrecognize", ac); } setByUser(); CssValue val; char op; CssIdent histValue = null; CssIdent commonValue = null; CssIdent discValue = 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 (commonValue == null) { commonValue = getCommonLigValues(ident); match = (commonValue != null); } if (!match && histValue == null) { histValue = getHistoricalLigValues(ident); match = (histValue != null); } if (!match && discValue == null) { discValue = getDiscretionaryLigValues(ident); match = (discValue != null); } 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 (commonValue != null) { value = commonValue; } else if (histValue != null) { value = histValue; } else if (discValue != null) { value = discValue; } } else { // do this to keep the same order for comparisons ArrayList<CssValue> v = new ArrayList<CssValue>(); if (commonValue != null) { v.add(commonValue); } if (histValue != null) { v.add(histValue); } if (discValue != null) { v.add(discValue); } value = new CssValueList(v); } } public CssFontVariantLigatures(ApplContext ac, CssExpression expression) throws InvalidParamException { this(ac, expression, false); } }
Received on Thursday, 9 August 2012 17:27:41 UTC