- From: CVS User ylafon <cvsmail@w3.org>
- Date: Thu, 03 Jan 2013 13:21:00 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/values In directory roscoe:/tmp/cvs-serv28771/values Modified Files: CssTypes.java Added Files: CssVolume.java Log Message: added db --- /sources/public/2002/css-validator/org/w3c/css/values/CssTypes.java 2012/11/07 15:46:38 1.8 +++ /sources/public/2002/css-validator/org/w3c/css/values/CssTypes.java 2013/01/03 13:21:00 1.9 @@ -1,5 +1,5 @@ // -// $Id: CssTypes.java,v 1.8 2012/11/07 15:46:38 ylafon Exp $ +// $Id: CssTypes.java,v 1.9 2013/01/03 13:21:00 ylafon Exp $ // // (c) COPYRIGHT MIT, ERCIM and Keio University, 2008. // Please first read the full copyright statement in file COPYRIGHT.html @@ -28,6 +28,7 @@ public static final int CSS_SWITCH = 15; public static final int CSS_HASH_IDENT = 16; public static final int CSS_IMAGE = 17; + public static final int CSS_VOLUME = 18; // not generated by the parser public static final int CSS_VALUE_LIST = 20; --- /sources/public/2002/css-validator/org/w3c/css/values/CssVolume.java 2013/01/03 13:21:00 NONE +++ /sources/public/2002/css-validator/org/w3c/css/values/CssVolume.java 2013/01/03 13:21:00 1.1 // $Id: CssVolume.java,v 1.1 2013/01/03 13:21:00 ylafon Exp $ // Author: Yves Lafon <ylafon@w3.org> // // (c) COPYRIGHT MIT, ERCIM and Keio University, 2013. // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.css.values; import org.w3c.css.properties.css.CssProperty; import org.w3c.css.util.ApplContext; import org.w3c.css.util.InvalidParamException; import java.math.BigDecimal; /** * @since CSS3 */ public class CssVolume extends CssCheckableValue { public static final int type = CssTypes.CSS_VOLUME; public final int getType() { return type; } private BigDecimal value; protected String unit; /** * Create a new CssVolume */ public CssVolume() { value = BigDecimal.ZERO; } /** * Set the value of this length. * * @param s the string representation of the length. * @throws org.w3c.css.util.InvalidParamException * The unit is incorrect */ public void set(String s, ApplContext ac) throws InvalidParamException { String low_s = s.toLowerCase(); int length = low_s.length(); int unitIdx = length - 1; char c = low_s.charAt(unitIdx); while (unitIdx > 0 && c <= 'z' && c >= 'a') { c = low_s.charAt(--unitIdx); } if (unitIdx == length - 1) { throw new InvalidParamException("unit", s, ac); } // we go back to the beginning of the unit unitIdx++; String unit_str = low_s.substring(unitIdx, length); // let's test the unit // TODO check the if (!BigDecimal.ZERO.equals(value))) test // that was here earlier // seems legit to always test the unit no matter the value switch (ac.getCssVersion()) { case CSS3: CssUnitsCSS3.parseVolumeUnit(unit_str, this, ac); break; default: throw new InvalidParamException("unit", s, ac); } try { value = new BigDecimal(low_s.substring(0, unitIdx)); } catch (NumberFormatException nex) { throw new InvalidParamException("invalid-number", low_s.substring(0, unitIdx), ac); } } /** * set the native value * * @param v the BigDecimal */ public void setValue(BigDecimal v) { value = v; } // return self public CssVolume getVolume() throws InvalidParamException { return this; } /** * Returns the current value */ public Object get() { // TODO this is old ugly crap, needed for not breaking everything // remove as soon as reference to get is removed... return new Float(value.floatValue()); } /** * return the float value */ public float floatValue() { return value.floatValue(); } /** * Returns true is the value is positive of null * * @return a boolean */ public boolean isPositive() { return (value.signum() >= 0); } /** * Returns true is the value is positive of null * * @return a boolean */ public boolean isStrictlyPositive() { return (value.signum() == 1); } /** * Returns true is the value is zero * * @return a boolean */ public boolean isZero() { return (BigDecimal.ZERO.compareTo(value) == 0); } /** * Returns the current value */ public String getUnit() { return unit; } /** * Returns a string representation of the object. */ public String toString() { return value.toPlainString() + unit; } /** * Compares two values for equality. * * @param value The other value. */ public boolean equals(Object value) { return (value instanceof CssVolume && this.value.equals(((CssVolume) value).value) && unit.equals(((CssVolume) value).unit)); } /** * check if the value is positive or null * * @param ac the validation context * @param property the property the value is defined in * @throws org.w3c.css.util.InvalidParamException * */ public void checkPositiveness(ApplContext ac, CssProperty property) throws InvalidParamException { if (!isPositive()) { throw new InvalidParamException("negative-value", toString(), property.getPropertyName(), ac); } } /** * check if the value is strictly positive * * @param ac the validation context * @param property the property the value is defined in * @throws org.w3c.css.util.InvalidParamException * */ public void checkStrictPositiveness(ApplContext ac, CssProperty property) throws InvalidParamException { if (!isStrictlyPositive()) { throw new InvalidParamException("strictly-positive", toString(), property.getPropertyName(), ac); } } /** * warn if the value is not positive or null * * @param ac the validation context * @param property the property the value is defined in */ public void warnPositiveness(ApplContext ac, CssProperty property) { if (!isPositive()) { ac.getFrame().addWarning("negative", toString()); } } }
Received on Thursday, 3 January 2013 13:21:01 UTC