W3C home > Mailing lists > Public > www-validator-cvs@w3.org > August 2012

2002/css-validator/org/w3c/css/properties/css3 CssFontVariantAlternates.java,NONE,1.1 Css3Style.java,1.39,1.40 CssFontVariantLigatures.java,1.1,1.2 CssColorProfile.java,1.3,NONE

From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
Date: Sat, 18 Aug 2012 20:30:30 +0000
To: www-validator-cvs@w3.org
Message-Id: <E1T2pfC-0003QZ-I7@lionel-hutz.w3.org>
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css3
In directory hutz:/tmp/cvs-serv13096/properties/css3

Modified Files:
	Css3Style.java CssFontVariantLigatures.java 
Added Files:
	CssFontVariantAlternates.java 
Removed Files:
	CssColorProfile.java 
Log Message:
font-variant-alternates per http://www.w3.org/TR/2011/WD-css3-fonts-20111004/#propdef-font-variant-alternates - removed unused property

--- CssColorProfile.java DELETED ---

--- NEW FILE: CssFontVariantAlternates.java ---
// $Id: CssFontVariantAlternates.java,v 1.1 2012/08/18 20:30:28 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.CssFunction;
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-alternates
 */
public class CssFontVariantAlternates extends org.w3c.css.properties.css.CssFontVariantAlternates {

	public static final String[] contextualAltValues = {"contextual", "no-contextual"};

	public static final CssIdent normal;
	public static final CssIdent ruby;
	public static final CssIdent historicalForms;

	static {
		normal = CssIdent.getIdent("normal");
		ruby = CssIdent.getIdent("ruby");
		historicalForms = CssIdent.getIdent("historical-forms");
	}

	public static final CssIdent getContextualAltValues(CssIdent ident) {
		String s_id = ident.toString();
		for (String s : contextualAltValues) {
			if (s_id.equals(s)) {
				return ident;
			}
		}
		return null;
	}

	/**
	 * Create a new CssFontVariantAlternates
	 */
	public CssFontVariantAlternates() {
		value = initial;
	}

	// here we just check that we got identifiers, comma separated for
	// the multipleValues case

	private void checkFuncExpression(ApplContext ac, CssExpression expression,
									 boolean multipleValues)
			throws InvalidParamException {
		CssValue val;
		char op;
		if (expression.getCount() == 0 || (!multipleValues && expression.getCount() > 1)) {
			throw new InvalidParamException("unrecognize", ac);
		}
		while (!expression.end()) {
			val = expression.getValue();
			op = expression.getOperator();

			if (val.getType() != CssTypes.CSS_IDENT) {
				throw new InvalidParamException("value",
						val.toString(),
						getPropertyName(), ac);
			}
			expression.next();
			if (expression.getRemainingCount() > 0) {
				if (op != CssOperator.COMMA) {
					throw new InvalidParamException("operator",
							((new Character(op)).toString()), ac);
				}
			}
		}
	}

	/**
	 * Creates a new CssFontVariantAlternates
	 *
	 * @param expression The expression for this property
	 * @throws org.w3c.css.util.InvalidParamException
	 *          Expressions are incorrect
	 */
	public CssFontVariantAlternates(ApplContext ac, CssExpression expression, boolean check)
			throws InvalidParamException {
		if (check && expression.getCount() > 9) {
			throw new InvalidParamException("unrecognize", ac);
		}
		setByUser();

		CssValue val;
		char op;

		CssIdent contextualAltVal = null;
		CssFunction stylistic = null;
		CssIdent histValue = null;
		CssFunction styleSet = null;
		CssFunction charVariant = null;
		CssFunction swash = null;
		CssFunction ornaments = null;
		CssFunction annotation = null;
		CssIdent rubyVal = null;
		boolean match;

		while (!expression.end()) {
			val = expression.getValue();
			op = expression.getOperator();

			switch (val.getType()) {
				case 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 (contextualAltVal == null) {
							contextualAltVal = getContextualAltValues(ident);
							value = contextualAltVal;
							match = (contextualAltVal != null);
						}
						if (!match && histValue == null) {
							if (historicalForms.equals(ident)) {
								histValue = historicalForms;
								value = histValue;
								match = true;
							}
						}
						if (!match && rubyVal == null) {
							if (ruby.equals(ident)) {
								rubyVal = ruby;
								value = rubyVal;
								match = true;
							}
						}
						if (!match) {
							throw new InvalidParamException("value",
									val.toString(),
									getPropertyName(), ac);
						}
					}
					break;
				case CssTypes.CSS_FUNCTION:
					match = false;
					CssFunction func = (CssFunction) val;
					String funcname = func.getName();
					if (stylistic == null) {
						if ("stylistic".equals(funcname)) {
							checkFuncExpression(ac, func.getParameters(), false);
							stylistic = func;
							value = stylistic;
							match = true;
						}
					}
					if (!match && styleSet == null) {
						if ("styleset".equals(funcname)) {
							checkFuncExpression(ac, func.getParameters(), true);
							styleSet = func;
							value = styleSet;
							match = true;
						}
					}
					if (!match && charVariant == null) {
						if ("character-variant".equals(funcname)) {
							checkFuncExpression(ac, func.getParameters(), true);
							charVariant = func;
							value = charVariant;
							match = true;
						}
					}
					if (!match && swash == null) {
						if ("swash".equals(funcname)) {
							checkFuncExpression(ac, func.getParameters(), false);
							swash = func;
							value = swash;
							match = true;
						}
					}
					if (!match && ornaments == null) {
						if ("ornaments".equals(funcname)) {
							checkFuncExpression(ac, func.getParameters(), false);
							ornaments = func;
							value = ornaments;
							match = true;
						}
					}
					if (!match && annotation == null) {
						if ("annotation".equals(funcname)) {
							checkFuncExpression(ac, func.getParameters(), false);
							annotation = func;
							value = annotation;
							match = true;
						}
					}
					if (match) {
						break;
					}
					// let if fail
				default:
					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) {
			// do this to keep the same order for comparisons
			ArrayList<CssValue> v = new ArrayList<CssValue>();
			if (contextualAltVal != null) {
				v.add(contextualAltVal);
			}
			if (stylistic != null) {
				v.add(stylistic);
			}
			if (histValue != null) {
				v.add(histValue);
			}
			if (styleSet != null) {
				v.add(styleSet);
			}
			if (charVariant != null) {
				v.add(charVariant);
			}
			if (swash != null) {
				v.add(swash);
			}
			if (ornaments != null) {
				v.add(ornaments);
			}
			if (annotation != null) {
				v.add(annotation);
			}
			if (rubyVal != null) {
				v.add(rubyVal);
			}
			value = new CssValueList(v);
		}

	}

	public CssFontVariantAlternates(ApplContext ac, CssExpression expression)
			throws InvalidParamException {
		this(ac, expression, false);
	}

}


Index: CssFontVariantLigatures.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/CssFontVariantLigatures.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CssFontVariantLigatures.java	9 Aug 2012 17:27:34 -0000	1.1
+++ CssFontVariantLigatures.java	18 Aug 2012 20:30:28 -0000	1.2
@@ -170,7 +170,6 @@
 			}
 			value = new CssValueList(v);
 		}
-
 	}
 
 	public CssFontVariantLigatures(ApplContext ac, CssExpression expression)

Index: Css3Style.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css3/Css3Style.java,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- Css3Style.java	18 Aug 2012 05:36:34 -0000	1.39
+++ Css3Style.java	18 Aug 2012 20:30:28 -0000	1.40
@@ -32,6 +32,7 @@
 import org.w3c.css.properties.css.CssFontKerning;
 import org.w3c.css.properties.css.CssFontLanguageOverride;
 import org.w3c.css.properties.css.CssFontSynthesis;
+import org.w3c.css.properties.css.CssFontVariantAlternates;
 import org.w3c.css.properties.css.CssFontVariantCaps;
 import org.w3c.css.properties.css.CssFontVariantEastAsian;
 import org.w3c.css.properties.css.CssFontVariantLigatures;
@@ -45,7 +46,6 @@
 
 public class Css3Style extends ATSCStyle {
 
-	CssColorProfile cssColorProfile;
 	CssRenderIntent cssRenderIntent;
 	CssRubyPosition cssRubyPosition;
 	CssRubyAlign cssRubyAlign;
@@ -138,6 +138,7 @@
 	public CssFontVariantLigatures cssFontVariantLigatures;
 	public CssFontVariantNumeric cssFontVariantNumeric;
 	public CssFontFeatureSettings cssFontFeatureSettings;
+	public CssFontVariantAlternates cssFontVariantAlternates;
 
 	CssDropInitialAfterAdjust cssDropInitialAfterAdjust;
 	CssDropInitialAfterAlign cssDropInitialAfterAlign;
@@ -206,15 +207,6 @@
 		return cssOpacity;
 	}
 
-	public CssColorProfile getColorProfile() {
-		if (cssColorProfile == null) {
-			cssColorProfile =
-					(CssColorProfile) style.CascadingOrder(new CssOpacity(),
-							style, selector);
-		}
-		return cssColorProfile;
-	}
-
 	public CssRenderIntent getRenderIntent() {
 		if (cssRenderIntent == null) {
 			cssRenderIntent =
@@ -1440,6 +1432,15 @@
 		return cssFontFeatureSettings;
 	}
 
+	public CssFontVariantAlternates getFontVariantAlternates() {
+		if (cssFontVariantAlternates == null) {
+			cssFontVariantAlternates =
+					(CssFontVariantAlternates) style.CascadingOrder(
+							new CssFontVariantAlternates(), style, selector);
+		}
+		return cssFontVariantAlternates;
+	}
+
 	///
 
 	public CssTextIndentCSS3 getTextIndentCSS3() {
Received on Saturday, 18 August 2012 20:30:43 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:17:50 UTC