- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 01 Sep 2005 11:51:23 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css21
In directory hutz:/tmp/cvs-serv16812/org/w3c/css/properties/css21
Added Files:
Css21Style.java CssBackgroundCSS21.java
CssBackgroundColorCSS21.java CssBackgroundPositionCSS21.java
CssBorderBottomCSS21.java CssBorderBottomColorCSS21.java
CssBorderCSS21.java CssBorderColorCSS21.java
CssBorderFaceColorCSS21.java CssBorderLeftCSS21.java
CssBorderLeftColorCSS21.java CssBorderRightCSS21.java
CssBorderRightColorCSS21.java CssBorderTopCSS21.java
CssBorderTopColorCSS21.java CssColorCSS21.java
CssContentCSS21.java CssCursorCSS21.java CssDisplayCSS21.java
CssListStyleCSS21.java CssListStyleTypeCSS21.java
CssTextAlignCSS21.java CssWhiteSpaceCSS21.java
Log Message:
>From Jean-Guilhem Rouel:
CSS 2.1 first implementation
--- NEW FILE: CssBorderFaceColorCSS21.java ---
// $Id: CssBorderFaceColorCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderFaceColorCSS2;
import org.w3c.css.properties.css1.CssProperty;
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.CssValue;
/**
* CssBorderFaceColorCSS21<br />
* Created: Aug 31, 2005 3:29:22 PM<br />
*/
public class CssBorderFaceColorCSS21 extends CssBorderFaceColorCSS2 {
/**
* Create a new CssBorderFaceColor
*/
public CssBorderFaceColorCSS21() {
super();
}
/**
* Create a new CssBorderFaceColor with a color property.
*
* @param color A color property
*/
public CssBorderFaceColorCSS21(org.w3c.css.properties.css1.CssColorCSS2 color) {
super(color);
}
/**
* Create a new CssBorderFaceColor with an another CssBorderFaceColor
*
* @param another An another face.
*/
public CssBorderFaceColorCSS21(CssBorderFaceColorCSS2 another) {
super(another);
}
/**
* Create a new CssBorderFaceColor with an expression
*
* @param expression The expression for this property.
* @exception InvalidParamException color is not a color
*/
public CssBorderFaceColorCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
if(check && expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
CssValue val = expression.getValue();
if (val instanceof org.w3c.css.values.CssColor) {
setFace(val);
} else if (val.equals(CssProperty.inherit)) {
setFace(CssProperty.inherit);
} else if(val.equals(CssProperty.transparent)) {
setFace(CssProperty.transparent);
} else if (val instanceof CssIdent) {
setFace(new org.w3c.css.values.CssColorCSS21(ac, (String) val.get()));
} else {
throw new InvalidParamException("value", val.toString(),
"border-color", ac);
}
expression.next();
}
public CssBorderFaceColorCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssBorderLeftCSS21.java ---
// $Id: CssBorderLeftCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderLeftCSS2;
import org.w3c.css.properties.css1.CssBorderLeftStyleCSS2;
import org.w3c.css.properties.css1.CssBorderLeftWidthCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssValue;
/**
* CssBorderLeftCSS21<br />
* Created: Aug 31, 2005 2:08:48 PM<br />
*/
public class CssBorderLeftCSS21 extends CssBorderLeftCSS2 {
/**
* Create a new CssBorderLeftCSS21
*/
public CssBorderLeftCSS21() {
super();
}
/**
* Create a new CssBorderLeftCSS21
*
* @param expression The expression for this property
* @exception InvalidParamException The expression is incorrect
*/
public CssBorderLeftCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
CssValue val = null;
char op = SPACE;
boolean find = true;
if(check && expression.getCount() > 3) {
throw new InvalidParamException("unrecognize", ac);
}
boolean manyValues = (expression.getCount() > 1);
setByUser();
while (find) {
find = false;
val = expression.getValue();
op = expression.getOperator();
if (val == null)
break;
// if there are many values, we can't have inherit as one of them
if(manyValues && val.equals(inherit)) {
throw new InvalidParamException("unrecognize", null, null, ac);
}
if (op != SPACE)
throw new InvalidParamException("operator",
((new Character(op)).toString()),
ac);
if (getWidth() == null) {
try {
setWidth(new CssBorderLeftWidthCSS2(ac, expression));
find = true;
} catch(InvalidParamException e){
// nothing to do, style will test this value
}
}
if (!find && getStyle() == null) {
try {
setStyle(new CssBorderLeftStyleCSS2(ac, expression));
find = true;
} catch(InvalidParamException e){
// nothing to do, color will test this value
}
}
if (!find && getColor() == null) {
// throws an exception if the value is not valid
setColor(new CssBorderLeftColorCSS21(ac, expression));
find = true;
}
}
}
public CssBorderLeftCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression,false);
}
}
--- NEW FILE: CssTextAlignCSS21.java ---
// $Id: CssTextAlignCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssTextAlign;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssString;
/**
* CssTextAlignCSS21<br />
* Created: Aug 31, 2005 11:39:33 AM<br />
*/
public class CssTextAlignCSS21 extends CssTextAlign {
/**
* Create a new CssTextAlignCSS21
*/
public CssTextAlignCSS21() {
// depends on user agent and writing direction
}
/**
* Create a new CssTextAlign
* @param expression The expression for this property
* @exception InvalidParamException Values are incorrect
*/
public CssTextAlignCSS21(ApplContext ac, CssExpression expression, boolean check)
throws InvalidParamException {
super(ac, expression, check);
Object val = get();
if(val instanceof CssString) {
throw new InvalidParamException("value", val.toString(),
getPropertyName(), ac);
}
}
public CssTextAlignCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssContentCSS21.java ---
// $Id: CssContentCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssContentCSS2;
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.CssValue;
/**
* CssContentCSS21<br />
* Created: Aug 30, 2005 4:18:11 PM<br />
*/
public class CssContentCSS21 extends CssContentCSS2{
static final CssIdent normal = new CssIdent("normal");
static final CssIdent none = new CssIdent("none");
/**
* Create a new CssContent
*/
public CssContentCSS21() {
}
/**
* Create a new CssContent
*
* @param expression The expression for this property
* @exception InvalidParamException The expression is incorrect
*/
public CssContentCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
CssValue val = expression.getValue();
setByUser();
if (val.equals(inherit)) {
if(expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
getValues().addElement(inherit);
expression.next();
return;
}
if (val.equals(normal)) {
if(expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
getValues().addElement(normal);
expression.next();
return;
}
if (val.equals(none)) {
if(expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
getValues().addElement(none);
expression.next();
return;
}
addContent(ac, expression);
}
public CssContentCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: Css21Style.java ---
// $Id: Css21Style.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css2.font.Css2Style;
import org.w3c.css.parser.CssPrinterStyle;
/**
* Css21Style<br />
* Created: Aug 30, 2005 2:25:17 PM<br />
*/
public class Css21Style extends Css2Style {
public void print(CssPrinterStyle printer) {
super.print(printer);
}
}
--- NEW FILE: CssColorCSS21.java ---
// $Id: CssColorCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssColorCSS2;
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.CssValue;
/**
* CssColorCSS21<br />
* Created: Aug 30, 2005 2:33:04 PM<br />
*/
public class CssColorCSS21 extends CssColorCSS2 {
/**
* Set the value of the property
* @param expression The expression for this property
* @exception InvalidParamException Values are incorrect
*/
public CssColorCSS21(ApplContext ac, CssExpression expression, boolean check)
throws InvalidParamException {
if(check && expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
CssValue val = expression.getValue();
setByUser();
if (val.equals(inherit)) {
setColor(inherit);
expression.next();
} else if (val instanceof org.w3c.css.values.CssColor) {
setColor(val);
expression.next();
} else if (val instanceof CssIdent) {
setColor(new org.w3c.css.values.CssColorCSS21(ac,
(String) val.get()));
expression.next();
} else {
throw new InvalidParamException("value", expression.getValue(),
getPropertyName(), ac);
}
}
public CssColorCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssDisplayCSS21.java ---
// $Id: CssDisplayCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssDisplayCSS2;
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.CssValue;
/**
* CssDisplayCSS21<br />
* Created: Aug 30, 2005 3:54:43 PM<br />
*/
public class CssDisplayCSS21 extends CssDisplayCSS2 {
private static String[] DISPLAY = {
"inline", "block", "inline-block", "list-item", "run-in", "table",
"inline-table", "table-row-group", "table-column-group",
"table-header-group", "table-footer-group", "table-row", "table-column",
"table-cell", "table-caption", "none", "inherit" };
private static int[] hash_values;
static {
hash_values = new int[DISPLAY.length];
for (int i = 0; i < DISPLAY.length; i++)
hash_values[i] = DISPLAY[i].hashCode();
}
/**
* Create a new CssDisplay
*/
public CssDisplayCSS21() {
// nothing to do
}
/**
* Create a new CssDisplay
*
* @param expression The expression for this property
* @exception InvalidParamException Values are incorect
*/
public CssDisplayCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
if(check && expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
CssValue val = expression.getValue();
setByUser();
if ( val instanceof CssIdent) {
int hash = val.hashCode();
for (int i = 0; i < DISPLAY.length; i++) {
if (hash_values[i] == hash) {
setValue(i);
expression.next();
return;
}
}
}
throw new InvalidParamException("value", expression.getValue(),
getPropertyName(), ac);
}
public CssDisplayCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
/**
* Returns a string representation of the object.
*/
public String toString() {
return DISPLAY[getValue()];
}
/**
* Returns true if this property is "softly" inherited
* e.g. his value equals inherit
*/
public boolean isSoftlyInherited() {
return getValue() == DISPLAY.length - 1;
}
/**
* Returns the value of this property
*/
public Object get() {
return DISPLAY[getValue()];
}
}
--- NEW FILE: CssBorderLeftColorCSS21.java ---
// $Id: CssBorderLeftColorCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderFaceColorCSS2;
import org.w3c.css.properties.css1.CssBorderLeftColorCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
* CssBorderLeftColorCSS21<br />
* Created: Aug 31, 2005 2:10:19 PM<br />
*/
public class CssBorderLeftColorCSS21 extends CssBorderLeftColorCSS2 {
/**
* Create a new CssBorderLeftColorCSS21 with an another CssBorderFaceColorCSS2
*
* @param another An another face.
*/
public CssBorderLeftColorCSS21(CssBorderFaceColorCSS2 another) {
super(another);
}
/**
* Create a new CssBorderLeftColor
*
* @param expression The expression for this property.
* @exception InvalidParamException Values are incorrect
*/
public CssBorderLeftColorCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
if(check && expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
setByUser();
setFace(new CssBorderFaceColorCSS21(ac, expression));
}
public CssBorderLeftColorCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssBorderRightColorCSS21.java ---
// $Id: CssBorderRightColorCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderFaceColorCSS2;
import org.w3c.css.properties.css1.CssBorderRightColorCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
* CssBorderRightColorCSS21<br />
* Created: Aug 31, 2005 2:09:31 PM<br />
*/
public class CssBorderRightColorCSS21 extends CssBorderRightColorCSS2 {
/**
* Create a new CssBorderRightColorCSS21 with an another CssBorderFaceColorCSS2
*
* @param another An another face.
*/
public CssBorderRightColorCSS21(CssBorderFaceColorCSS2 another) {
super(another);
}
/**
* Create a new CssBorderRightColor
*
* @param expression The expression for this property.
* @exception InvalidParamException Values are incorrect
*/
public CssBorderRightColorCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
if(check && expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
setByUser();
setFace(new CssBorderFaceColorCSS21(ac, expression));
}
public CssBorderRightColorCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssListStyleTypeCSS21.java ---
// $Id: CssListStyleTypeCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssListStyleTypeCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
* CssListStyleTypeCSS21<br />
* Created: Aug 31, 2005 10:54:09 AM<br />
*/
public class CssListStyleTypeCSS21 extends CssListStyleTypeCSS2 {
/**
* Create a new CssListStyleTypeCSS21
*/
public CssListStyleTypeCSS21() {
// nothing to do
}
/**
* Create a new CssListStyleTypeCSS21
* @param expression The expression for this property
* @exception InvalidParamException Values are incorrect
*/
public CssListStyleTypeCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
super(ac, expression, check);
// fast but ugly
if(getValue() == 12 || getValue() == 15 || getValue() == 16 ||
getValue() == 17 || getValue() == 18 || getValue() == 19) {
throw new InvalidParamException("value", get().toString(),
getPropertyName(), ac);
}
}
public CssListStyleTypeCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssBackgroundCSS21.java ---
// $Id: CssBackgroundCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBackgroundAttachmentCSS2;
import org.w3c.css.properties.css1.CssBackgroundCSS2;
import org.w3c.css.properties.css1.CssBackgroundImageCSS2;
import org.w3c.css.properties.css1.CssBackgroundRepeatCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssValue;
/**
* CssBackgroundCSS21<br />
* Created: Aug 31, 2005 2:03:41 PM<br />
*/
public class CssBackgroundCSS21 extends CssBackgroundCSS2 {
/**
* Create a new CssBackgroundCSS2
*/
public CssBackgroundCSS21() {
super();
}
/**
* Set the value of the property
*
* @param expression The expression for this property
* @exception InvalidParamException The expression is incorrect
*/
public CssBackgroundCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
CssValue val = expression.getValue();
char op = SPACE;
boolean find = true;
// too many values
if(check && expression.getCount() > 6) {
throw new InvalidParamException("unrecognize", ac);
}
setByUser();
boolean manyValues = (expression.getCount() > 1);
while (find) {
find = false;
val = expression.getValue();
op = expression.getOperator();
if (val == null) {
break;
}
// if there are many values, we can't have inherit as one of them
if(manyValues && val != null && val.equals(inherit)) {
throw new InvalidParamException("unrecognize", null, null, ac);
}
if (getColor2() == null) {
try {
setColor(new CssBackgroundColorCSS21(ac, expression));
find = true;
} catch (InvalidParamException e) {
// nothing to do, image will test this value
}
}
if (!find && getImage() == null) {
try {
setImage(new CssBackgroundImageCSS2(ac, expression));
find = true;
} catch (InvalidParamException e) {
// nothing to do, repeat will test this value
}
}
if (!find && getRepeat() == null) {
try {
setRepeat(new CssBackgroundRepeatCSS2(ac, expression));
find = true;
} catch (InvalidParamException e) {
// nothing to do, attachment will test this value
}
}
if (!find && getAttachment() == null) {
try {
setAttachment(new CssBackgroundAttachmentCSS2(ac, expression));
find = true;
} catch (InvalidParamException e) {
// nothing to do, position will test this value
}
}
if (!find && getPosition() == null) {
try {
setPosition(new CssBackgroundPositionCSS21(ac, expression));
find = true;
} catch (InvalidParamException e) {
// nothing to do
}
}
if(check && val != null && !find) {
throw new InvalidParamException("unrecognize", ac);
}
if (op != SPACE) {
throw new InvalidParamException("operator",
((new Character(op)).toString()),
ac);
}
if(check && !find && val != null) {
throw new InvalidParamException("unrecognize", ac);
}
}
}
public CssBackgroundCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssBorderBottomCSS21.java ---
// $Id: CssBorderBottomCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderBottomCSS2;
import org.w3c.css.properties.css1.CssBorderBottomStyleCSS2;
import org.w3c.css.properties.css1.CssBorderBottomWidthCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssValue;
/**
* CssBorderBottomCSS21<br />
* Created: Aug 31, 2005 2:07:13 PM<br />
*/
public class CssBorderBottomCSS21 extends CssBorderBottomCSS2 {
/**
* Create a new CssBorderBottomCSS21
*/
public CssBorderBottomCSS21() {
super();
}
/**
* Create a new CssBorderBottomCSS21
*
* @param expression The expression for this property
* @exception InvalidParamException The expression is incorrect
*/
public CssBorderBottomCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
CssValue val = null;
char op = SPACE;
boolean find = true;
if(check && expression.getCount() > 3) {
throw new InvalidParamException("unrecognize", ac);
}
boolean manyValues = (expression.getCount() > 1);
setByUser();
while (find) {
find = false;
val = expression.getValue();
op = expression.getOperator();
if (val == null)
break;
// if there are many values, we can't have inherit as one of them
if(manyValues && val.equals(inherit)) {
throw new InvalidParamException("unrecognize", null, null, ac);
}
if (op != SPACE)
throw new InvalidParamException("operator",
((new Character(op)).toString()),
ac);
if (getWidth() == null) {
try {
setWidth(new CssBorderBottomWidthCSS2(ac, expression));
find = true;
} catch(InvalidParamException e){
// nothing to do, style will test this value
}
}
if (!find && getStyle() == null) {
try {
setStyle(new CssBorderBottomStyleCSS2(ac, expression));
find = true;
} catch(InvalidParamException e){
// nothing to do, color will test this value
}
}
if (!find && getColor() == null) {
// throws an exception if the value is not valid
setColor(new CssBorderBottomColorCSS21(ac, expression));
find = true;
}
}
}
public CssBorderBottomCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression,false);
}
}
--- NEW FILE: CssCursorCSS21.java ---
// $Id: CssCursorCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css2.user.CursorCSS2;
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.CssURL;
import org.w3c.css.values.CssValue;
/**
* CssCursorCSS21<br />
* Created: Aug 30, 2005 4:47:16 PM<br />
*/
public class CssCursorCSS21 extends CursorCSS2 {
private static String CURSOR[] = {
"auto", "crosshair", "default", "pointer", "move", "e-resize",
"ne-resize", "nw-resize", "n-resize", "se-resize", "sw-resize",
"s-resize", "w-resize", "text", "wait", "help", "progress" };
private static int[] hash_values;
/**
* Create a new Cursor
*/
public CssCursorCSS21() {
super();
}
/**
* Create a new Cursor
*
* @param expression The expression for this property
* @exception InvalidParamException Values are incorrect
*/
public CssCursorCSS21(ApplContext ac, CssExpression expression, boolean check)
throws InvalidParamException {
CssValue val = expression.getValue();
char op = expression.getOperator();
setByUser();
if (val.equals(inherit)) {
if(expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
setInheritedValue(true);
expression.next();
return;
}
while ((op == COMMA) && (val instanceof CssURL)) {
if(val != null && val.equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
getUris().addElement(val);
expression.next();
val = expression.getValue();
op = expression.getOperator();
}
if (val instanceof CssURL) {
throw new InvalidParamException("comma",
val.toString(),
getPropertyName(), ac);
}
if (val instanceof CssIdent) {
int hash = val.hashCode();
for (int i = 0; i < CURSOR.length; i++) {
if (hash_values[i] == hash) {
setValue(i);
expression.next();
if(check && !expression.end()) {
throw new InvalidParamException("unrecognize", ac);
}
return;
}
}
}
throw new InvalidParamException("value",
val.toString(), getPropertyName(), ac);
}
public CssCursorCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
/**
* Returns a string representation of the object.
*/
public String toString() {
if (isInheritedValue()) {
return inherit.toString();
} else {
int i = 0;
int l = getUris().size();
String ret = "";
while (i != l) {
ret += getUris().elementAt(i++) +
(new Character(COMMA)).toString() + " ";
}
ret += " " + CURSOR[getValue()];
return ret;
}
}
static {
hash_values = new int[CURSOR.length];
for (int i=0; i<CURSOR.length; i++)
hash_values[i] = CURSOR[i].hashCode();
}
}
--- NEW FILE: CssBorderBottomColorCSS21.java ---
// $Id: CssBorderBottomColorCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderBottomColorCSS2;
import org.w3c.css.properties.css1.CssBorderFaceColorCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
* CssBorderBottomColorCSS21<br />
* Created: Aug 31, 2005 2:10:07 PM<br />
*/
public class CssBorderBottomColorCSS21 extends CssBorderBottomColorCSS2 {
/**
* Create a new CssBorderBottomColorCSS21 with an another CssBorderFaceColorCSS2
*
* @param another An another face.
*/
public CssBorderBottomColorCSS21(CssBorderFaceColorCSS2 another) {
super(another);
}
/**
* Create a new CssBorderBottomColor
*
* @param expression The expression for this property.
* @exception InvalidParamException Values are incorrect
*/
public CssBorderBottomColorCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
if(check && expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
setByUser();
setFace(new CssBorderFaceColorCSS21(ac, expression));
}
public CssBorderBottomColorCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssBorderTopCSS21.java ---
// $Id: CssBorderTopCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderTopStyleCSS2;
import org.w3c.css.properties.css1.CssBorderTopWidthCSS2;
import org.w3c.css.properties.css1.CssBorderTopCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssValue;
/**
* CssBorderTopCSS21<br />
* Created: Aug 31, 2005 2:08:11 PM<br />
*/
public class CssBorderTopCSS21 extends CssBorderTopCSS2 {
/**
* Create a new CssBorderTopCSS21
*/
public CssBorderTopCSS21() {
super();
}
/**
* Create a new CssBorderTopCSS21
*
* @param expression The expression for this property
* @exception InvalidParamException The expression is incorrect
*/
public CssBorderTopCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
CssValue val = null;
char op = SPACE;
boolean find = true;
if(check && expression.getCount() > 3) {
throw new InvalidParamException("unrecognize", ac);
}
boolean manyValues = (expression.getCount() > 1);
setByUser();
while (find) {
find = false;
val = expression.getValue();
op = expression.getOperator();
if (val == null)
break;
// if there are many values, we can't have inherit as one of them
if(manyValues && val.equals(inherit)) {
throw new InvalidParamException("unrecognize", null, null, ac);
}
if (op != SPACE)
throw new InvalidParamException("operator",
((new Character(op)).toString()),
ac);
if (getWidth() == null) {
try {
setWidth(new CssBorderTopWidthCSS2(ac, expression));
find = true;
} catch(InvalidParamException e){
// nothing to do, style will test this value
}
}
if (!find && getStyle() == null) {
try {
setStyle(new CssBorderTopStyleCSS2(ac, expression));
find = true;
} catch(InvalidParamException e){
// nothing to do, color will test this value
}
}
if (!find && getColor() == null) {
// throws an exception if the value is not valid
setColor(new CssBorderTopColorCSS21(ac, expression));
find = true;
}
}
}
public CssBorderTopCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression,false);
}
}
--- NEW FILE: CssBorderTopColorCSS21.java ---
// $Id: CssBorderTopColorCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderFaceColorCSS2;
import org.w3c.css.properties.css1.CssBorderTopColorCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
* CssBorderTopColorCSS21<br />
* Created: Aug 31, 2005 2:09:16 PM<br />
*/
public class CssBorderTopColorCSS21 extends CssBorderTopColorCSS2 {
/**
* Create a new CssBorderTopColorCSS21 with an another CssBorderFaceColorCSS2
*
* @param another An another face.
*/
public CssBorderTopColorCSS21(CssBorderFaceColorCSS2 another) {
super(another);
}
/**
* Create a new CssBorderTopColor
*
* @param expression The expression for this property.
* @exception InvalidParamException Values are incorrect
*/
public CssBorderTopColorCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
if(check && expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
setByUser();
setFace(new CssBorderFaceColorCSS21(ac, expression));
}
public CssBorderTopColorCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssBackgroundColorCSS21.java ---
// $Id: CssBackgroundColorCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBackgroundColorCSS2;
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.CssValue;
/**
* CssBackgroundColorCSS21<br />
* Created: Aug 31, 2005 2:04:23 PM<br />
*/
public class CssBackgroundColorCSS21 extends CssBackgroundColorCSS2 {
/**
* Create a new CssBackgroundColorCSS2
*/
public CssBackgroundColorCSS21() {
super();
}
/**
* Create a new CssBackgroundColorCSS2
*
* @param expression The expression for this property
* @exception InvalidParamException Values are incorrect
*/
public CssBackgroundColorCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
if(check && expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
setByUser();
CssValue val = expression.getValue();
if (val instanceof org.w3c.css.values.CssColor) {
setColor(val);
expression.next();
} else if (val instanceof CssIdent) {
if (val.equals(transparent)) {
setColor(transparent);
expression.next();
} else if (val.equals(inherit)) {
setColor(inherit);
expression.next();
} else {
setColor(new org.w3c.css.values.CssColorCSS21(ac, (String) val.get()));
expression.next();
}
} else {
throw new InvalidParamException("value", val.toString(),
getPropertyName(), ac);
}
}
public CssBackgroundColorCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssWhiteSpaceCSS21.java ---
// $Id: CssWhiteSpaceCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssWhiteSpace;
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.CssValue;
/**
* CssWhiteSpaceCSS21<br />
* Created: Aug 30, 2005 5:02:07 PM<br />
*/
public class CssWhiteSpaceCSS21 extends CssWhiteSpace {
private static String[] WHITESPACE = {
"normal", "pre", "nowrap", "pre-wrap", "pre-line", "inherit" };
private static int[] hash_values;
/**
* Create a new CssWhiteSpace
*/
public CssWhiteSpaceCSS21() {
// nothing to do
}
/**
* Create a new CssWhiteSpace
*
* @param expression The expression for this property
* @exception InvalidParamException values are incorrect
*/
public CssWhiteSpaceCSS21(ApplContext ac, CssExpression expression, boolean check)
throws InvalidParamException {
if(check && expression.getCount() > 1) {
throw new InvalidParamException("unrecognize", ac);
}
CssValue val = expression.getValue();
setByUser();
if ( val instanceof CssIdent) {
int hash = val.hashCode();
for (int i = 0; i < WHITESPACE.length; i++)
if (hash_values[i] == hash) {
setValue(i);
expression.next();
return;
}
}
throw new InvalidParamException("value", expression.getValue(),
getPropertyName(), ac);
}
public CssWhiteSpaceCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
/**
* Returns the value of this property
*/
public Object get() {
return WHITESPACE[getValue()];
}
/**
* Returns true if this property is "softly" inherited
* e.g. his value equals inherit
*/
public boolean isSoftlyInherited() {
return getValue() == (WHITESPACE.length - 1);
}
/**
* Returns a string representation of the object.
*/
public String toString() {
return WHITESPACE[getValue()];
}
static {
hash_values = new int[WHITESPACE.length];
for (int i = 0; i < WHITESPACE.length; i++)
hash_values[i] = WHITESPACE[i].hashCode();
}
}
--- NEW FILE: CssBorderColorCSS21.java ---
// $Id: CssBorderColorCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderBottomColorCSS2;
import org.w3c.css.properties.css1.CssBorderColorCSS2;
import org.w3c.css.properties.css1.CssBorderLeftColorCSS2;
import org.w3c.css.properties.css1.CssBorderRightColorCSS2;
import org.w3c.css.properties.css1.CssBorderTopColorCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
* CssBorderColorCSS21<br />
* Created: Aug 31, 2005 2:09:05 PM<br />
*/
public class CssBorderColorCSS21 extends CssBorderColorCSS2 {
/**
* Create a new CssBorderColorCSS2 with all four sides
*/
public CssBorderColorCSS21(CssBorderTopColorCSS2 top,
CssBorderBottomColorCSS2 bottom,
CssBorderRightColorCSS2 right,
CssBorderLeftColorCSS2 left) {
super(top, bottom, right, left);
}
/**
* Create a new CssBorderColorCSS21
*
* @param expression The expression for this property
* @exception InvalidParamException Values are incorrect
*/
public CssBorderColorCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
setByUser();
switch (expression.getCount()) {
case 1:
setTop(new CssBorderTopColorCSS21(ac, expression));
// setBottom(new CssBorderBottomColorCSS21(
// (CssBorderFaceColorCSS21) getTop().get()));
// setRight(new CssBorderRightColorCSS21(
// (CssBorderFaceColorCSS21) getTop().get()));
// setLeft(new CssBorderLeftColorCSS21(
// (CssBorderFaceColorCSS21) getTop().get()));
break;
case 2:
if (expression.getOperator() != SPACE)
throw new InvalidParamException("operator",
((new Character(expression.getOperator())).toString()),
ac);
if(expression.getValue().equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
setTop(new CssBorderTopColorCSS21(ac, expression));
if(expression.getValue().equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
setRight(new CssBorderRightColorCSS21(ac, expression));
// setBottom(new CssBorderBottomColorCSS21(
// (CssBorderFaceColorCSS21) getTop().get()));
// setLeft(new CssBorderLeftColorCSS21(
// (CssBorderFaceColorCSS21) getRight().get()));
break;
case 3:
if (expression.getOperator() != SPACE)
throw new InvalidParamException("operator",
((new Character(expression.getOperator())).toString()),
ac);
if(expression.getValue().equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
setTop(new CssBorderTopColorCSS21(ac, expression));
if (expression.getOperator() != SPACE)
throw new InvalidParamException("operator",
((new Character(expression.getOperator())).toString()), ac);
if(expression.getValue().equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
setRight(new CssBorderRightColorCSS21(ac, expression));
if(expression.getValue().equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
setBottom(new CssBorderBottomColorCSS21(ac, expression));
// setLeft(new CssBorderLeftColorCSS21(
// (CssBorderFaceColorCSS21) getRight().get()));
break;
case 4:
if (expression.getOperator() != SPACE)
throw new InvalidParamException("operator",
((new Character(expression.getOperator())).toString()),
ac);
if(expression.getValue().equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
setTop(new CssBorderTopColorCSS21(ac, expression));
if (expression.getOperator() != SPACE)
throw new InvalidParamException("operator",
((new Character(expression.getOperator())).toString()),
ac);
if(expression.getValue().equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
setRight(new CssBorderRightColorCSS21(ac, expression));
if (expression.getOperator() != SPACE)
throw new InvalidParamException("operator",
((new Character(expression.getOperator())).toString()),
ac);
if(expression.getValue().equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
setBottom(new CssBorderBottomColorCSS21(ac, expression));
if(expression.getValue().equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
setLeft(new CssBorderLeftColorCSS21(ac, expression));
break;
default:
if(check) {
throw new InvalidParamException("unrecognize", ac);
}
}
}
public CssBorderColorCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssBorderCSS21.java ---
// $Id: CssBorderCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderBottomStyleCSS2;
import org.w3c.css.properties.css1.CssBorderBottomWidthCSS2;
import org.w3c.css.properties.css1.CssBorderCSS2;
import org.w3c.css.properties.css1.CssBorderFaceStyleCSS2;
import org.w3c.css.properties.css1.CssBorderFaceWidthCSS2;
import org.w3c.css.properties.css1.CssBorderLeftStyleCSS2;
import org.w3c.css.properties.css1.CssBorderLeftWidthCSS2;
import org.w3c.css.properties.css1.CssBorderRightStyleCSS2;
import org.w3c.css.properties.css1.CssBorderRightWidthCSS2;
import org.w3c.css.properties.css1.CssBorderTopColorCSS2;
import org.w3c.css.properties.css1.CssBorderTopStyleCSS2;
import org.w3c.css.properties.css1.CssBorderTopWidthCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssValue;
/**
* CssBorderCSS21<br />
* Created: Aug 31, 2005 2:07:02 PM<br />
*/
public class CssBorderCSS21 extends CssBorderCSS2 {
/**
* Create a new CssBorderFaceCSS2
*/
public CssBorderCSS21() {
super();
}
/**
* Create a new CssBorderFaceCSS2
*
* @param value The value for this property
* @exception InvalidParamException The value is incorrect
*/
public CssBorderCSS21(ApplContext ac, CssExpression value,
boolean check) throws InvalidParamException {
if(check && value.getCount() > 3) {
throw new InvalidParamException("unrecognize", ac);
}
CssValue val = value.getValue();
setByUser();
setTop(new CssBorderTopCSS21(ac, value));
if (val == value.getValue()) {
throw new InvalidParamException("value",
value.getValue(),
getPropertyName(), ac);
}
setRight(new CssBorderRightCSS21());
setBottom(new CssBorderBottomCSS21());
setLeft(new CssBorderLeftCSS21());
CssBorderTopWidthCSS2 w = getTop().getWidth2();
CssBorderTopStyleCSS2 s = getTop().getStyle2();
CssBorderTopColorCSS2 c = getTop().getColor2();
if(w != null) {
getRight().setWidth(
new CssBorderRightWidthCSS2((CssBorderFaceWidthCSS2) w.get()));
getLeft().setWidth(
new CssBorderLeftWidthCSS2((CssBorderFaceWidthCSS2) w.get()));
getBottom().setWidth(
new CssBorderBottomWidthCSS2((CssBorderFaceWidthCSS2) w.get()));
}
if(s != null) {
getRight().setStyle(
new CssBorderRightStyleCSS2((CssBorderFaceStyleCSS2) s.get()));
getLeft().setStyle(
new CssBorderLeftStyleCSS2((CssBorderFaceStyleCSS2) s.get()));
getBottom().setStyle(
new CssBorderBottomStyleCSS2((CssBorderFaceStyleCSS2) s.get()));
}
if(c != null) {
getRight().setColor(
new CssBorderRightColorCSS21((CssBorderFaceColorCSS21) c.get()));
getLeft().setColor(
new CssBorderLeftColorCSS21((CssBorderFaceColorCSS21) c.get()));
getBottom().setColor(
new CssBorderBottomColorCSS21((CssBorderFaceColorCSS21) c.get()));
}
}
public CssBorderCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssBorderRightCSS21.java ---
// $Id: CssBorderRightCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderRightCSS2;
import org.w3c.css.properties.css1.CssBorderRightStyleCSS2;
import org.w3c.css.properties.css1.CssBorderRightWidthCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssValue;
/**
* CssBorderRightCSS21<br />
* Created: Aug 31, 2005 2:08:24 PM<br />
*/
public class CssBorderRightCSS21 extends CssBorderRightCSS2 {
/**
* Create a new CssBorderRightCSS21
*/
public CssBorderRightCSS21() {
super();
}
/**
* Create a new CssBorderRightCSS21
*
* @param expression The expression for this property
* @exception InvalidParamException The expression is incorrect
*/
public CssBorderRightCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
CssValue val = null;
char op = SPACE;
boolean find = true;
if(check && expression.getCount() > 3) {
throw new InvalidParamException("unrecognize", ac);
}
boolean manyValues = (expression.getCount() > 1);
setByUser();
while (find) {
find = false;
val = expression.getValue();
op = expression.getOperator();
if (val == null)
break;
// if there are many values, we can't have inherit as one of them
if(manyValues && val.equals(inherit)) {
throw new InvalidParamException("unrecognize", null, null, ac);
}
if (op != SPACE)
throw new InvalidParamException("operator",
((new Character(op)).toString()),
ac);
if (getWidth() == null) {
try {
setWidth(new CssBorderRightWidthCSS2(ac, expression));
find = true;
} catch(InvalidParamException e){
// nothing to do, style will test this value
}
}
if (!find && getStyle() == null) {
try {
setStyle(new CssBorderRightStyleCSS2(ac, expression));
find = true;
} catch(InvalidParamException e){
// nothing to do, color will test this value
}
}
if (!find && getColor() == null) {
// throws an exception if the value is not valid
setColor(new CssBorderRightColorCSS21(ac, expression));
find = true;
}
}
}
public CssBorderRightCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression,false);
}
}
--- NEW FILE: CssListStyleCSS21.java ---
// $Id: CssListStyleCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssListStyleCSS2;
import org.w3c.css.properties.css1.CssListStyleImageCSS2;
import org.w3c.css.properties.css1.CssListStylePositionCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssValue;
/**
* CssListStyleCSS21<br />
* Created: Aug 31, 2005 12:09:48 PM<br />
*/
public class CssListStyleCSS21 extends CssListStyleCSS2 {
/**
* Create a new CssListStyleCSS2
*/
public CssListStyleCSS21() {
// nothing to do
}
/**
* Create a new CssListStyleCSS2
*
* @param expression The expression for this property
* @exception InvalidParamException Values are incorrect
*/
public CssListStyleCSS21(ApplContext ac, CssExpression expression,
boolean check) throws InvalidParamException {
int exprLength = expression.getCount();
if(check && exprLength > 3) {
throw new InvalidParamException("unrecognize", ac);
}
CssValue val = expression.getValue();
char op = SPACE;
boolean find = true;
setByUser();
if (val.equals(inherit)) {
if(exprLength > 1) {
throw new InvalidParamException("unrecognize", ac);
}
setInheritedValue(true);
expression.next();
return;
}
while (find) {
find = false;
val = expression.getValue();
op = expression.getOperator();
if(val != null && val.equals(inherit)) {
throw new InvalidParamException("unrecognize", ac);
}
if ((getListStyleType() == null) && (val != null)) {
try {
setListStyleType(new CssListStyleTypeCSS21(ac, expression));
find = true;
} catch (InvalidParamException e) {
}
}
if (!find && (getListStyleImage() == null) && (val != null)) {
try {
setListStyleImage(new CssListStyleImageCSS2(ac, expression));
find = true;
} catch (InvalidParamException e) {
}
}
if (!find && (val != null) && (getListStylePosition() == null)) {
setListStylePosition(new CssListStylePositionCSS2(ac, expression));
find = true;
}
if(val != null && !find) {
throw new InvalidParamException("unrecognize", ac);
}
if (op != SPACE) {
throw new InvalidParamException("operator",
((new Character(op)).toString()),
ac);
}
}
}
public CssListStyleCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
--- NEW FILE: CssBackgroundPositionCSS21.java ---
// $Id: CssBackgroundPositionCSS21.java,v 1.1 2005/09/01 11:51:21 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBackgroundPositionCSS2;
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.CssLength;
import org.w3c.css.values.CssNumber;
import org.w3c.css.values.CssPercentage;
import org.w3c.css.values.CssValue;
/**
* CssBackgroundPositionCSS21<br />
* Created: Aug 31, 2005 5:45:30 PM<br />
*/
public class CssBackgroundPositionCSS21 extends CssBackgroundPositionCSS2 {
/**
* Create a new CssBackgroundPositionCSS2
*/
public CssBackgroundPositionCSS21() {
super();
}
/**
* Creates a new CssBackgroundPositionCSS2
*
* @param expression The expression for this property
* @exception InvalidParamException Values are incorrect
*/
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 (val.equals(inherit)) {
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 vertical
// 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();
}
}
public CssBackgroundPositionCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}
Received on Thursday, 1 September 2005 11:51:57 UTC