- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 06 Feb 2009 15:17:50 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css21
In directory hutz:/tmp/cvs-serv16965
Modified Files:
CssBackgroundPositionCSS21.java
Log Message:
fixes bug 6090
http://www.w3.org/Bugs/Public/show_bug.cgi?id=6090
(most of the class was duplicated code)
Index: CssBackgroundPositionCSS21.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css21/CssBackgroundPositionCSS21.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- CssBackgroundPositionCSS21.java 25 Mar 2008 18:43:11 -0000 1.4
+++ CssBackgroundPositionCSS21.java 6 Feb 2009 15:17:48 -0000 1.5
@@ -35,139 +35,7 @@
*/
public CssBackgroundPositionCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
-
- if(check && expression.getCount() > 2) {
- throw new InvalidParamException("unrecognize", ac);
- }
-
- setByUser();
- CssValue val = expression.getValue();
- char op = expression.getOperator();
- if (op != SPACE)
- throw new InvalidParamException("operator",
- ((new Character(op)).toString()),
- ac);
-
- if (inherit.equals(val)) {
- if(expression.getCount() > 1) {
- throw new InvalidParamException("unrecognize", ac);
- }
- setFirst(inherit);
- setSecond(inherit);
- expression.next();
- return;
- }
-
- CssValue next = expression.getNextValue();
-
- if(val instanceof CssIdent) {
- int index1 = IndexOfIdent((String) val.get());
- if(index1 == -1) {
- throw new InvalidParamException("value", val, "background-position", ac);
- }
- // two keywords
- if(next instanceof CssIdent) {
- int index2 = IndexOfIdent((String) next.get());
- if(index2 == -1 && check) {
- throw new InvalidParamException("value", next, "background-position", ac);
- }
- // one is vertical, the other is horizontal
- // or the two are 'center'
- if((isHorizontal(index1) && isVertical(index2)) ||
- (isHorizontal(index2) && isVertical(index1))) {
- setFirst(val);
- setSecond(next);
- }
- // both are horizontal or vertical but not 'center'
- else if(check){
- throw new InvalidParamException("incompatible",
- val, next, ac);
- }
- else {
- setFirst(val);
- }
- }
- // a keyword and a percentage/length
- else if(next instanceof CssLength || next instanceof CssPercentage
- || next instanceof CssNumber) {
- if(isHorizontal(index1)) {
- if(next instanceof CssNumber) {
- next = ((CssNumber) next).getLength();
- }
- setFirst(val);
- setSecond(next);
- }
- // if the keyword is the first value, it can only be an
- // horizontal one
- else {
- throw new InvalidParamException("incompatible",
- val, next, ac);
- }
- }
- // only one value
- else if(next == null) {
- setFirst(val);
- }
- // the second value is invalid
- else if(check) {
- throw new InvalidParamException("value", next,
- getPropertyName(), ac);
- }
- else {
- setFirst(val);
- }
- }
- else if(val instanceof CssLength || val instanceof CssPercentage ||
- val instanceof CssNumber) {
- if(val instanceof CssNumber) {
- val = ((CssNumber) val).getLength();
- }
- // a percentage/length and an keyword
- if(next instanceof CssIdent) {
- int index = IndexOfIdent((String) next.get());
- if(check && index == -1) {
- throw new InvalidParamException("value", next, "background-position", ac);
- }
- // the keyword must be a vertical one
- if(isVertical(index)) {
- setFirst(val);
- setSecond(next);
- }
- else if(check) {
- throw new InvalidParamException("incompatible",
- val, next, ac);
- }
- else {
- setFirst(val);
- }
- }
- else if(next instanceof CssLength || next instanceof CssPercentage
- || next instanceof CssNumber) {
- if(next instanceof CssNumber) {
- next = ((CssNumber) next).getLength();
- }
- setFirst(val);
- setSecond(next);
- }
- else if(next == null || !check) {
- setFirst(val);
- }
- else {
- throw new InvalidParamException("incompatible", val, next, ac);
- }
- }
- else if(check){
- throw new InvalidParamException("value", expression.getValue(),
- getPropertyName(), ac);
- }
-
- // we only move the cursor if we found valid values
- if(getFirst() != null) {
- expression.next();
- }
- if(getSecond() != null) {
- expression.next();
- }
+ super(ac, expression, check);
}
public CssBackgroundPositionCSS21(ApplContext ac, CssExpression expression)
Received on Friday, 6 February 2009 15:17:58 UTC