- From: CVS User ylafon <cvsmail@w3.org>
- Date: Tue, 18 Dec 2012 19:32:30 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css2
In directory roscoe:/tmp/cvs-serv1535/css2
Modified Files:
CssElevation.java
Log Message:
elevation revamped
--- /sources/public/2002/css-validator/org/w3c/css/properties/css2/CssElevation.java 2011/09/11 20:38:54 1.1
+++ /sources/public/2002/css-validator/org/w3c/css/properties/css2/CssElevation.java 2012/12/18 19:32:30 1.2
@@ -1,12 +1,11 @@
//
-// $Id: CssElevation.java,v 1.1 2011/09/11 20:38:54 ylafon Exp $
+// $Id: CssElevation.java,v 1.2 2012/12/18 19:32:30 ylafon Exp $
//
// (c) COPYRIGHT MIT, ERCIM and Keio University, 2011.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css2;
-import org.w3c.css.properties.css.CssProperty;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssAngle;
@@ -17,157 +16,86 @@
/**
+ * @version $Revision: 1.2 $
* @spec http://www.w3.org/TR/2008/REC-CSS2-20080411/aural.html#propdef-elevation
- *
- * @version $Revision: 1.1 $
*/
public class CssElevation extends org.w3c.css.properties.css.CssElevation {
- CssIdent identValue;
- CssAngle angleValue;
+ public static final CssIdent[] allowed_values;
- private static int[] hash_values;
- private static CssIdent defaultValue;
- private static String[] elValues = {"below", "level", "above",
- "higher", "lower"};
-
-
- static {
- defaultValue = new CssIdent("level");
- hash_values = new int[elValues.length];
- for (int i = 0; i < elValues.length; i++)
- hash_values[i] = elValues[i].hashCode();
- }
-
- /**
- * Create a new ACssElevation
- */
- public CssElevation() {
- }
-
- // check that the ident is a valid one
- private boolean checkIdent(CssIdent ident) {
- int hash = ident.hashCode();
- for (int h : hash_values) {
- if (h == hash) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Creates a new ACssElevation
- *
- * @param expression The expression for this property
- * @throws org.w3c.css.util.InvalidParamException
- * Values are incorrect
- */
- public CssElevation(ApplContext ac, CssExpression expression,
- boolean check) throws InvalidParamException {
- if (check && expression.getCount() > 1) {
- throw new InvalidParamException("unrecognize", ac);
- }
-
- CssValue val = expression.getValue();
- //int index;
- setByUser();
-
- switch (val.getType()) {
- case CssTypes.CSS_IDENT:
- CssIdent ident = (CssIdent) val;
- if (inherit.equals(ident)) {
- identValue = inherit;
- expression.next();
- return;
- }
- if (checkIdent(ident)) {
- identValue = ident;
- expression.next();
- return;
- }
- throw new InvalidParamException("unrecognize", ac);
- case CssTypes.CSS_ANGLE:
- angleValue = (CssAngle) val;
- float v = angleValue.getDegree();
- if (v > 90 && v < 270) {
- throw new InvalidParamException("elevation.range", ac);
- }
- expression.next();
- return;
- }
-
- throw new InvalidParamException("value",
- expression.getValue().toString(),
- getPropertyName(), ac);
- }
-
- public CssElevation(ApplContext ac, CssExpression expression)
- throws InvalidParamException {
- this(ac, expression, false);
- }
-
- /**
- * Returns the value of this property
- */
- public Object get() {
- if (identValue != null) {
- return identValue;
- }
- return angleValue;
- }
-
- /**
- * Returns true if this property is "softly" inherited
- * e.g. his value is equals to inherit
- */
- public boolean isSoftlyInherited() {
- return inherit.equals(identValue);
- }
-
- /**
- * Returns a string representation of the object.
- */
- public String toString() {
- if (identValue != null) {
- return identValue.toString();
- }
- return angleValue.toString();
- }
-
-
- /**
- * Compares two properties for equality.
- *
- * @param property The other property.
- */
- public boolean equals(CssProperty property) {
- CssElevation other;
- try {
- other = (CssElevation) property;
- } catch (ClassCastException cc) {
- return false;
- }
- if (identValue != null) {
- return ((angleValue == null) && (other.angleValue == null) &&
- (identValue.equals(other.identValue)));
- }
- return ((other.identValue == null) &&
- (angleValue.equals(other.angleValue)));
- }
-
-
- private CssIdent checkIdent(ApplContext ac, CssIdent ident)
- throws InvalidParamException {
- int hash = ident.hashCode();
- for (int i = 0; i < elValues.length; i++) {
- if (hash_values[i] == hash) {
- return ident;
- }
- }
-
- throw new InvalidParamException("value", ident.toString(),
- getPropertyName(), ac);
- }
+ static {
+ String[] _allowed_values = {"below", "level", "above",
+ "higher", "lower"};
+ int i = 0;
+ allowed_values = new CssIdent[_allowed_values.length];
+ for (String s : _allowed_values) {
+ allowed_values[i++] = CssIdent.getIdent(s);
+ }
+ }
+
+ public static final CssIdent getAllowedIdent(CssIdent ident) {
+ for (CssIdent id : allowed_values) {
+ if (id.equals(ident)) {
+ return id;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Create a new CssElevation
+ */
+ public CssElevation() {
+ }
+
+ /**
+ * Creates a new ACssElevation
+ *
+ * @param expression The expression for this property
+ * @throws org.w3c.css.util.InvalidParamException
+ * Values are incorrect
+ */
+ public CssElevation(ApplContext ac, CssExpression expression,
+ boolean check) throws InvalidParamException {
+ if (check && expression.getCount() > 1) {
+ throw new InvalidParamException("unrecognize", ac);
+ }
+
+ CssValue val = expression.getValue();
+ //int index;
+ setByUser();
+
+ switch (val.getType()) {
+ case CssTypes.CSS_ANGLE:
+ // TODO getAngle()
+ CssAngle a = (CssAngle) value;
+ float v = a.getDegree();
+ if (v > 90 && v < 270) {
+ throw new InvalidParamException("elevation.range", ac);
+ }
+ value = val;
+ break;
+ case CssTypes.CSS_IDENT:
+ CssIdent ident = (CssIdent) val;
+ if (inherit.equals(ident)) {
+ value = inherit;
+ break;
+ }
+ value = getAllowedIdent(ident);
+ if (value != null) {
+ break;
+ }
+ default:
+ throw new InvalidParamException("value",
+ val.toString(),
+ getPropertyName(), ac);
+ }
+ expression.next();
+ }
+
+ public CssElevation(ApplContext ac, CssExpression expression)
+ throws InvalidParamException {
+ this(ac, expression, false);
+ }
}
Received on Tuesday, 18 December 2012 19:32:31 UTC