- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 26 Sep 2012 08:43:55 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/properties/css1
In directory hutz:/tmp/cvs-serv695/css1
Modified Files:
Css1Style.java CssMargin.java CssMarginBottom.java
CssMarginLeft.java CssMarginRight.java CssMarginTop.java
Log Message:
margin-* per css1/css2/css21/css3-box
Index: CssMargin.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/CssMargin.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- CssMargin.java 27 Sep 2011 08:15:45 -0000 1.7
+++ CssMargin.java 26 Sep 2012 08:43:53 -0000 1.8
@@ -1,367 +1,167 @@
-//
// $Id$
-// From Philippe Le Hegaret (Philippe.Le_Hegaret@sophia.inria.fr)
+// Author: Yves Lafon <ylafon@w3.org>
//
-// (c) COPYRIGHT MIT and INRIA, 1997.
+// (c) COPYRIGHT MIT, ERCIM and Keio University, 2012.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css1;
-import org.w3c.css.parser.CssSelectors;
-import org.w3c.css.parser.CssStyle;
import org.w3c.css.properties.css.CssProperty;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
-import org.w3c.css.values.CssOperator;
-
-/**
- * <H4>
- * 'margin'
- * </H4>
- * <P>
- * <EM>Value:</EM> [ <length> | <percentage> | auto ]{1,4} <BR>
- * <EM>Initial:</EM> not defined for shorthand properties<BR>
- * <EM>Applies to:</EM> all elements<BR>
- * <EM>Inherited:</EM> no<BR>
- * <EM>Percentage values:</EM> refer to parent element's width<BR>
- * <P>
- * The 'margin' property is a shorthand property for setting 'margin-top',
- * 'margin-right' 'margin-bottom' and 'margin-left' at the same place in the
- * style sheet.
- * <P>
- * If four length values are specified they apply to top, right, bottom and
- * left respectively. If there is only one value, it applies to all sides, if
- * there are two or three, the missing values are taken from the opposite side.
- * <PRE>
- * BODY { margin: 2em } / * all margins set to 2em * /
- * BODY { margin: 1em 2em } / * top & bottom = 1em, right & left = 2em * /
- * BODY { margin: 1em 2em 3em } / * top=1em, right=2em, bottom=3em, left=2em * /
- * </PRE>
- * <P>
- * The last rule of the example above is equivalent to the example below:
- * <PRE>
- * BODY {
- * margin-top: 1em;
- * margin-right: 2em;
- * margin-bottom: 3em;
- * margin-left: 2em; / * copied from opposite side (right) * /
- * }
- * </PRE>
- * <P>
- * Negative margin values are allowed, but there may be implementation-specific
- * limits.
- * @version $Revision$
- */
-public class CssMargin extends CssProperty implements CssOperator {
-
- CssMarginTop top;
- CssMarginBottom bottom;
- CssMarginRight right;
- CssMarginLeft left;
+import org.w3c.css.values.CssIdent;
+import org.w3c.css.values.CssLength;
+import org.w3c.css.values.CssTypes;
+import org.w3c.css.values.CssValue;
+import org.w3c.css.values.CssValueList;
- boolean inheritedValue;
+import java.util.ArrayList;
- /**
- * Create a new CssMargin
- */
- public CssMargin() {
- }
+import static org.w3c.css.values.CssOperator.SPACE;
- /**
- * Create a new CssMargin
- *
- * @param expression The expression for this property
- * @exception InvalidParamException Values are incorrect
- */
- public CssMargin(ApplContext ac, CssExpression expression, boolean check)
- throws InvalidParamException {
+/**
+ * @spec http://www.w3.org/TR/2008/REC-CSS1-20080411/#margin
+ */
+public class CssMargin extends org.w3c.css.properties.css.CssMargin {
- //CssValue val = expression.floatValue();
- setByUser();
+ public static final CssIdent auto = CssIdent.getIdent("auto");
- /*if (val.equals(inherit)) {
- inheritedValue = true;
- top = new CssMarginTop();
- top.value = inherit;
- bottom = new CssMarginBottom();
- bottom.value = inherit;
- right = new CssMarginRight();
- right.value = inherit;
- left = new CssMarginLeft();
- left.value = inherit;
- }*/
- switch (expression.getCount()) {
- case 1:
- top = new CssMarginTop(ac, expression);
- /*bottom = new CssMarginBottom(top);
- right = new CssMarginRight(top);
- left = new CssMarginLeft(top);*/
- 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);
- }
- top = new CssMarginTop(ac, expression);
- if(expression.getValue().equals(inherit)) {
- throw new InvalidParamException("unrecognize", ac);
- }
- right = new CssMarginRight(ac, expression);
- /*bottom = new CssMarginBottom(top);
- left = new CssMarginLeft(right);*/
- 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);
- }
- top = new CssMarginTop(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);
- }
- right = new CssMarginRight(ac, expression);
- if(expression.getValue().equals(inherit)) {
- throw new InvalidParamException("unrecognize", ac);
- }
- bottom = new CssMarginBottom(ac, expression);
- //left = new CssMarginLeft(right);
- 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);
- }
- top = new CssMarginTop(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);
- }
- right = new CssMarginRight(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);
- }
- bottom = new CssMarginBottom(ac, expression);
- if(expression.getValue().equals(inherit)) {
- throw new InvalidParamException("unrecognize", ac);
- }
- left = new CssMarginLeft(ac, expression);
- break;
- default:
- if(check)
- throw new InvalidParamException("unrecognize", ac);
+ /**
+ * Create a new CssMargin
+ */
+ public CssMargin() {
}
- }
-
- public CssMargin(ApplContext ac, CssExpression expression)
- throws InvalidParamException {
- this(ac, expression, false);
- }
- /**
- * Returns the value of this property
- */
- public Object get() {
- return top;
- }
-
- /**
- * Returns the top property
- */
- public CssMarginTop getTop() {
- return top;
- }
- /**
- * Returns the right property
- */
- public CssMarginRight getRight() {
- return right;
- }
+ /**
+ * Set the value of the property<br/>
+ * Does not check the number of values
+ *
+ * @param expression The expression for this property
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMargin(ApplContext ac, CssExpression expression)
+ throws InvalidParamException {
+ this(ac, expression, false);
+ }
- /**
- * Returns the bottom property
- */
- public CssMarginBottom getBottom() {
- return bottom;
- }
+ /**
+ * Set the value of the property
+ *
+ * @param expression The expression for this property
+ * @param check set it to true to check the number of values
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMargin(ApplContext ac, CssExpression expression,
+ boolean check) throws InvalidParamException {
+ if (check && expression.getCount() > 4) {
+ throw new InvalidParamException("unrecognize", ac);
+ }
+ CssValue val;
+ char op;
+ ArrayList<CssValue> v = new ArrayList<CssValue>();
- /**
- * Returns the left property
- */
- public CssMarginLeft getLeft() {
- return left;
- }
+ while (!expression.end()) {
+ val = expression.getValue();
+ op = expression.getOperator();
- /**
- * Returns the name of this property
- */
- public String getPropertyName() {
- return "margin";
- }
+ switch (val.getType()) {
+ case CssTypes.CSS_NUMBER:
+ CssLength l = val.getLength();
+ case CssTypes.CSS_LENGTH:
+ case CssTypes.CSS_PERCENTAGE:
+ v.add(val);
+ break;
+ case CssTypes.CSS_IDENT:
+ if (auto.equals(val)) {
+ v.add(auto);
+ break;
+ }
+ default:
+ throw new InvalidParamException("value",
+ val.toString(),
+ getPropertyName(), ac);
+ }
+ if (op != SPACE) {
+ throw new InvalidParamException("operator",
+ ((new Character(op)).toString()), ac);
- /**
- * Returns a string representation of the object.
- */
- public String toString() {
- if (inheritedValue) {
- return inherit.toString();
- }
- String result = "";
- // top should never be null
- if(top != null) result += top;
- if(right != null) result += " " + right;
- if(bottom != null) result += " " + bottom;
- if(left != null) result += " " + left;
- return result;
- /*if (right.value.equals(left.value)) {
- if (top.value.equals(bottom.value)) {
- if (top.value.equals(right.value)) {
- return top.toString();
- } else {
- return top + " " + right;
+ }
+ expression.next();
}
- } else {
- return top + " " + right + " " + bottom;
- }
- } else {
- return top + " " + right + " " + bottom + " " + left;
- }*/
- }
+ // now we check the number of values...
+ marginBottom = new CssMarginBottom();
+ marginLeft = new CssMarginLeft();
+ marginTop = new CssMarginTop();
+ marginRight = new CssMarginRight();
- /**
- * Set this property to be important.
- * Overrides this method for a macro
- */
- public void setImportant() {
- if(top != null) {
- top.important = true;
- }
- if(right != null) {
- right.important = true;
- }
- if(bottom != null) {
- bottom.important = true;
- }
- if(left != null) {
- left.important = true;
+ switch (v.size()) {
+ case 1:
+ marginTop.value = v.get(0);
+ marginRight.value = v.get(0);
+ marginBottom.value = v.get(0);
+ marginLeft.value = v.get(0);
+ break;
+ case 2:
+ marginTop.value = v.get(0);
+ marginRight.value = v.get(1);
+ marginBottom.value = v.get(0);
+ marginLeft.value = v.get(1);
+ break;
+ case 3:
+ marginTop.value = v.get(0);
+ marginRight.value = v.get(1);
+ marginBottom.value = v.get(2);
+ marginLeft.value = v.get(1);
+ break;
+ case 4:
+ marginTop.value = v.get(0);
+ marginRight.value = v.get(1);
+ marginBottom.value = v.get(2);
+ marginLeft.value = v.get(3);
+ break;
+ default:
+ // can't happen unless we are not checking
+ // the size
+ throw new InvalidParamException("unrecognize", ac);
+ }
+ value = new CssValueList(v);
}
- }
- /**
- * Returns true if this property is important.
- * Overrides this method for a macro
- */
- public boolean getImportant() {
- return ((top == null || top.important) &&
- (right == null || right.important) &&
- (bottom == null || bottom.important) &&
- (left == null || left.important));
- }
+ // for use by individual margin-* properties
- /**
- * Set the context.
- * Overrides this method for a macro
- *
- * @see org.w3c.css.css.CssCascadingOrder#order
- * @see org.w3c.css.css.StyleSheetParser#handleRule
- */
- public void setSelectors(CssSelectors selector) {
- super.setSelectors(selector);
- if (top != null) {
- top.setSelectors(selector);
- }
- if (right != null) {
- right.setSelectors(selector);
- }
- if (bottom != null) {
- bottom.setSelectors(selector);
- }
- if (left != null) {
- left.setSelectors(selector);
- }
- }
+ protected static CssValue checkValue(ApplContext ac,
+ CssExpression expression,
+ boolean check, CssProperty caller)
+ throws InvalidParamException {
+ if (check && expression.getCount() > 1) {
+ throw new InvalidParamException("unrecognize", ac);
+ }
+ CssValue val;
+ char op;
- /**
- * Add this property to the CssStyle
- *
- * @param style The CssStyle
- */
- public void addToStyle(ApplContext ac, CssStyle style) {
- ((Css1Style) style).cssMargin.inheritedValue = inheritedValue;
- if(top != null) {
- top.addToStyle(ac, style);
- }
- if(right != null) {
- right.addToStyle(ac, style);
- }
- if(bottom != null) {
- bottom.addToStyle(ac, style);
- }
- if(left != null) {
- left.addToStyle(ac, style);
- }
- }
+ val = expression.getValue();
+ op = expression.getOperator();
- /**
- * Get this property in the style.
- *
- * @param style The style where the property is
- * @param resolve if true, resolve the style to find this property
- */
- public CssProperty getPropertyInStyle(CssStyle style, boolean resolve) {
- if (resolve) {
- return ((Css1Style) style).getMargin();
- } else {
- return ((Css1Style) style).cssMargin;
+ switch (val.getType()) {
+ case CssTypes.CSS_NUMBER:
+ CssLength l = val.getLength();
+ case CssTypes.CSS_LENGTH:
+ case CssTypes.CSS_PERCENTAGE:
+ expression.next();
+ return val;
+ case CssTypes.CSS_IDENT:
+ if (auto.equals(val)) {
+ expression.next();
+ return auto;
+ }
+ // if not inherit, or not an ident
+ // let it flow to the exception
+ }
+ throw new InvalidParamException("value",
+ val.toString(),
+ caller.getPropertyName(), ac);
}
- }
-
- /**
- * Update the source file and the line.
- * Overrides this method for a macro
- *
- * @param line The line number where this property is defined
- * @param source The source file where this property is defined
- */
- public void setInfo(int line, String source) {
- super.setInfo(line, source);
- // it assumes that values exists, that may not be the case
- // always. What would be the cause of that, an invalid clause?
- // in this case a proper exception should be sent
- // So... a FIXME
- if(top != null) top.setInfo(line, source);
- if(right != null) right.setInfo(line, source);
- if(bottom != null) bottom.setInfo(line, source);
- if(left != null) left.setInfo(line, source);
- }
-
- /**
- * Compares two properties for equality.
- *
- * @param value The other property.
- */
- public boolean equals(CssProperty property) {
- return false;
- }
-
}
Index: CssMarginBottom.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/CssMarginBottom.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- CssMarginBottom.java 5 Jan 2010 13:49:44 -0000 1.4
+++ CssMarginBottom.java 26 Sep 2012 08:43:53 -0000 1.5
@@ -1,112 +1,50 @@
-//
// $Id$
-// From Philippe Le Hegaret (Philippe.Le_Hegaret@sophia.inria.fr)
+// Author: Yves Lafon <ylafon@w3.org>
//
-// (c) COPYRIGHT MIT and INRIA, 1997.
+// (c) COPYRIGHT MIT, ERCIM and Keio University, 2012.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css1;
-import org.w3c.css.parser.CssStyle;
-import org.w3c.css.properties.css.CssProperty;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
- * <H4>
- * 'margin-bottom'
- * </H4>
- * <P>
- * <EM>Value:</EM> <length> | <percentage> | auto<BR>
- * <EM>Initial:</EM> 0<BR>
- * <EM>Applies to:</EM> all elements<BR>
- * <EM>Inherited:</EM> no<BR>
- * <EM>Percentage values:</EM> refer to parent element's width<BR>
- * <P>
- * This property sets the bottom margin of an element:
- * <PRE>
- * H1 { margin-bottom: 3px }
- * </PRE>
- * <P>
- * A negative value is allowed, but there may be implementation-specific limits.
- * @version $Revision$
+ * @spec http://www.w3.org/TR/2008/REC-CSS1-20080411/#margin-bottom
*/
-public class CssMarginBottom extends CssMarginSide {
-
- /**
- * Create a new CssMarginBottom
- */
- public CssMarginBottom() {
- super();
- }
-
- /**
- * Create a new CssMarginBottom with an another CssMarginSide
- *
- * @param another The another side.
- */
- public CssMarginBottom(CssMarginSide another) {
- super(another);
- }
-
- /**
- * Create a new CssMarginBottom
- *
- * @param expression The expression for this porperty.
- * @exception InvalidParamException Values are incorrect
- */
- public CssMarginBottom(ApplContext ac, CssExpression expression)
- throws InvalidParamException {
- super(ac, expression);
- }
-
- public CssMarginBottom(ApplContext ac, CssExpression expression, boolean check)
- throws InvalidParamException {
- super(ac, expression, check);
- }
-
- /**
- * Returns the name of this property
- */
- public String getPropertyName() {
- return "margin-bottom";
- }
+public class CssMarginBottom extends org.w3c.css.properties.css.CssMarginBottom {
- /**
- * Add this property to the CssStyle.
- *
- * @param style The CssStyle
- */
- public void addToStyle(ApplContext ac, CssStyle style) {
- Css1Style style0 = (Css1Style) style;
- if (style0.cssMargin.bottom != null) {
- style0.addRedefinitionWarning(ac, this);
- }
- style0.cssMargin.bottom = this;
- }
+ /**
+ * Create a new CssMarginBottom
+ */
+ public CssMarginBottom() {
+ }
- /**
- * Get this property in the style.
- *
- * @param style The style where the property is
- * @param resolve if true, resolve the style to find this property
- */
- public CssProperty getPropertyInStyle(CssStyle style, boolean resolve) {
- if (resolve) {
- return ((Css1Style) style).getMarginBottom();
- } else {
- return ((Css1Style) style).cssMargin.getBottom();
- }
- }
+ /**
+ * Set the value of the property<br/>
+ * Does not check the number of values
+ *
+ * @param expression The expression for this property
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMarginBottom(ApplContext ac, CssExpression expression)
+ throws InvalidParamException {
+ this(ac, expression, false);
+ }
- /**
- * Compares two properties for equality.
- *
- * @param value The other property.
- */
- public boolean equals(CssProperty property) {
- return (property instanceof CssMarginBottom &&
- value.equals(((CssMarginBottom) property).value));
- }
+ /**
+ * Set the value of the property
+ *
+ * @param expression The expression for this property
+ * @param check set it to true to check the number of values
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMarginBottom(ApplContext ac, CssExpression expression,
+ boolean check) throws InvalidParamException {
+ setByUser();
+ value = CssMargin.checkValue(ac, expression, check, this);
+ }
}
Index: Css1Style.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/Css1Style.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- Css1Style.java 25 Sep 2012 20:01:36 -0000 1.36
+++ Css1Style.java 26 Sep 2012 08:43:53 -0000 1.37
@@ -22,6 +22,11 @@
import org.w3c.css.properties.css.CssPaddingRight;
import org.w3c.css.properties.css.CssPaddingBottom;
import org.w3c.css.properties.css.CssPadding;
+import org.w3c.css.properties.css.CssMargin;
+import org.w3c.css.properties.css.CssMarginTop;
+import org.w3c.css.properties.css.CssMarginBottom;
+import org.w3c.css.properties.css.CssMarginLeft;
+import org.w3c.css.properties.css.CssMarginRight;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
@@ -689,62 +694,62 @@
* Get the margin-top property
*/
public final CssMarginTop getMarginTop() {
- if (cssMargin.top == null) {
- cssMargin.top =
+ if (cssMargin.marginTop == null) {
+ cssMargin.marginTop =
(CssMarginTop) style.CascadingOrder(new CssMarginTop(),
style, selector);
}
- return cssMargin.top;
+ return cssMargin.marginTop;
}
/**
* Get the margin-right property
*/
public final CssMarginRight getMarginRight() {
- if (cssMargin.right == null) {
- cssMargin.right =
+ if (cssMargin.marginRight == null) {
+ cssMargin.marginRight =
(CssMarginRight) style.CascadingOrder(new CssMarginRight(),
style, selector);
}
- return cssMargin.right;
+ return cssMargin.marginRight;
}
/**
* Get the margin-bottom property
*/
public final CssMarginBottom getMarginBottom() {
- if (cssMargin.bottom == null) {
- cssMargin.bottom =
+ if (cssMargin.marginBottom == null) {
+ cssMargin.marginBottom =
(CssMarginBottom) style.CascadingOrder(new CssMarginBottom(),
style, selector);
}
- return cssMargin.bottom;
+ return cssMargin.marginBottom;
}
/**
* Get the margin-left property
*/
public final CssMarginLeft getMarginLeft() {
- if (cssMargin.left == null) {
- cssMargin.left =
+ if (cssMargin.marginLeft == null) {
+ cssMargin.marginLeft =
(CssMarginLeft) style.CascadingOrder(new CssMarginLeft(),
style, selector);
}
- return cssMargin.left;
+ return cssMargin.marginLeft;
}
/**
* Get the margin property
*/
public final CssMargin getMargin() {
- if (cssMargin.top == null)
- cssMargin.top = getMarginTop();
- if (cssMargin.right == null)
- cssMargin.right = getMarginRight();
- if (cssMargin.bottom == null)
- cssMargin.bottom = getMarginBottom();
- if (cssMargin.left == null)
- cssMargin.left = getMarginLeft();
+ if (cssMargin.marginTop == null)
+ cssMargin.marginTop = getMarginTop();
+ if (cssMargin.marginRight == null)
+ cssMargin.marginRight = getMarginRight();
+ if (cssMargin.marginBottom == null)
+ cssMargin.marginBottom = getMarginBottom();
+ if (cssMargin.marginLeft == null)
+ cssMargin.marginLeft = getMarginLeft();
return cssMargin;
}
@@ -1644,13 +1649,13 @@
RelativeAndAbsolute checker = new RelativeAndAbsolute();
CssProperty info = null;
- if (cssMargin.getTop() != null) {
- info = cssMargin.getTop();
- checker.compute(cssMargin.getTop().getValue());
+ if (cssMargin.marginTop != null) {
+ info = cssMargin.marginTop;
+ checker.compute(cssMargin.marginTop.value);
}
- if (cssMargin.getBottom() != null) {
- info = cssMargin.getBottom();
- checker.compute(cssMargin.getBottom().getValue());
+ if (cssMargin.marginBottom != null) {
+ info = cssMargin.marginBottom;
+ checker.compute(cssMargin.marginBottom.value);
}
if (checker.isNotRobust()) {
warnings.addWarning(new Warning(info.getSourceFile(),
@@ -1660,13 +1665,13 @@
}
checker.reset();
- if (cssMargin.getRight() != null) {
- info = cssMargin.getRight();
- checker.compute(cssMargin.getRight().getValue());
+ if (cssMargin.marginRight != null) {
+ info = cssMargin.marginRight;
+ checker.compute(cssMargin.marginRight.value);
}
- if (cssMargin.getLeft() != null) {
- info = cssMargin.getLeft();
- checker.compute(cssMargin.getLeft().getValue());
+ if (cssMargin.marginLeft != null) {
+ info = cssMargin.marginLeft;
+ checker.compute(cssMargin.marginLeft.value);
}
if (checker.isNotRobust()) {
warnings.addWarning(new Warning(info.getSourceFile(),
Index: CssMarginRight.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/CssMarginRight.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- CssMarginRight.java 5 Jan 2010 13:49:44 -0000 1.4
+++ CssMarginRight.java 26 Sep 2012 08:43:53 -0000 1.5
@@ -1,110 +1,49 @@
-//
// $Id$
-// From Philippe Le Hegaret (Philippe.Le_Hegaret@sophia.inria.fr)
+// Author: Yves Lafon <ylafon@w3.org>
//
-// (c) COPYRIGHT MIT and INRIA, 1997.
+// (c) COPYRIGHT MIT, ERCIM and Keio University, 2012.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css1;
-import org.w3c.css.parser.CssStyle;
-import org.w3c.css.properties.css.CssProperty;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
- * <H4>
- * 'margin-right'
- * </H4>
- * <P>
- * <EM>Value:</EM> <length> | <percentage> | auto<BR>
- * <EM>Initial:</EM> 0<BR>
- * <EM>Applies to:</EM> all elements<BR>
- * <EM>Inherited:</EM> no<BR>
- * <EM>Percentage values:</EM> refer to parent element's width<BR>
- * <P>
- * This property sets the right margin of an element:
- * <PRE>
- * H1 { margin-right: 12.3% }
- * </PRE>
- * <P> A negative value is allowed, but there may be implementation-specific
- * limits.
- *
- * @version $Revision$ */
-public class CssMarginRight extends CssMarginSide {
-
- /**
- * Create a new CssMarginRight
- */
- public CssMarginRight() {
- super();
- }
-
- /**
- * Create a new CssMarginRight with an another CssMarginSide
- * @param another The another side.
- */
- public CssMarginRight(CssMarginSide another) {
- super(another);
- }
-
- /**
- * Create a new CssMarginRight
- *
- * @param expression The expression for this property.
- * @exception InvalidParamException Values are incorrect
- */
- public CssMarginRight(ApplContext ac, CssExpression expression)
- throws InvalidParamException {
- super(ac, expression);
- }
-
- public CssMarginRight(ApplContext ac, CssExpression expression, boolean check)
- throws InvalidParamException {
- super(ac, expression, check);
- }
-
- /**
- * Returns the name of this property
- */
- public String getPropertyName() {
- return "margin-right";
- }
-
- /**
- * Add this property to the CssStyle.
- *
- * @param style The CssStyle
- */
- public void addToStyle(ApplContext ac, CssStyle style) {
- Css1Style style0 = (Css1Style) style;
- if (style0.cssMargin.right != null)
- style0.addRedefinitionWarning(ac, this);
- style0.cssMargin.right = this;
- }
+ * @spec http://www.w3.org/TR/2008/REC-CSS1-20080411/#margin-right
+ */
+public class CssMarginRight extends org.w3c.css.properties.css.CssMarginRight {
- /**
- * Get this property in the style.
- *
- * @param style The style where the property is
- * @param resolve if true, resolve the style to find this property
- */
- public CssProperty getPropertyInStyle(CssStyle style, boolean resolve) {
- if (resolve) {
- return ((Css1Style) style).getMarginRight();
- } else {
- return ((Css1Style) style).cssMargin.getRight();
- }
- }
+ /**
+ * Create a new CssMarginRight
+ */
+ public CssMarginRight() {
+ }
- /**
- * Compares two properties for equality.
- *
- * @param value The other property.
- */
- public boolean equals(CssProperty property) {
- return (property instanceof CssMarginRight &&
- value.equals(((CssMarginRight) property).value));
- }
+ /**
+ * Set the value of the property<br/>
+ * Does not check the number of values
+ *
+ * @param expression The expression for this property
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMarginRight(ApplContext ac, CssExpression expression)
+ throws InvalidParamException {
+ this(ac, expression, false);
+ }
+ /**
+ * Set the value of the property
+ *
+ * @param expression The expression for this property
+ * @param check set it to true to check the number of values
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMarginRight(ApplContext ac, CssExpression expression,
+ boolean check) throws InvalidParamException {
+ setByUser();
+ value = CssMargin.checkValue(ac, expression, check, this);
+ }
}
Index: CssMarginLeft.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/CssMarginLeft.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- CssMarginLeft.java 5 Jan 2010 13:49:44 -0000 1.4
+++ CssMarginLeft.java 26 Sep 2012 08:43:53 -0000 1.5
@@ -1,111 +1,50 @@
-//
// $Id$
-// From Philippe Le Hegaret (Philippe.Le_Hegaret@sophia.inria.fr)
+// Author: Yves Lafon <ylafon@w3.org>
//
-// (c) COPYRIGHT MIT and INRIA, 1997.
+// (c) COPYRIGHT MIT, ERCIM and Keio University, 2012.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css1;
-import org.w3c.css.parser.CssStyle;
-import org.w3c.css.properties.css.CssProperty;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
- * <H4>
- * 'margin-left'
- * </H4>
- * <P>
- * <EM>Value:</EM> <length> | <percentage> | auto<BR>
- * <EM>Initial:</EM> 0<BR>
- * <EM>Applies to:</EM> all elements<BR>
- * <EM>Inherited:</EM> no<BR>
- * <EM>Percentage values:</EM> refer to parent element's width<BR>
- * <P>
- * This property sets the left margin of an element:
- * <PRE>
- * H1 { margin-left: 2em }
- * </PRE>
- * <P>
- * A negative value is allowed, but there may be implementation-specific limits.
- * @version $Revision$
+ * @spec http://www.w3.org/TR/2008/REC-CSS1-20080411/#margin-left
*/
-public class CssMarginLeft extends CssMarginSide {
-
- /**
- * Create a new CssMarginLeft
- */
- public CssMarginLeft() {
- super();
- }
-
- /**
- * Create a new CssMarginLeft with an another CssMarginSide
- *
- * @param another The another side.
- */
- public CssMarginLeft(CssMarginSide another) {
- super(another);
- }
-
- /**
- * Create a new CssMarginLeft
- *
- * @param expression The expression foir this property.
- * @exception InvalidParamException Values are incorrect
- */
- public CssMarginLeft(ApplContext ac, CssExpression expression)
- throws InvalidParamException {
- super(ac, expression);
- }
-
- public CssMarginLeft(ApplContext ac, CssExpression expression, boolean check)
- throws InvalidParamException {
- super(ac, expression, check);
- }
-
- /**
- * Returns the name of this property
- */
- public String getPropertyName() {
- return "margin-left";
- }
+public class CssMarginLeft extends org.w3c.css.properties.css.CssMarginLeft {
- /**
- * Add this property to the CssStyle.
- *
- * @param style The CssStyle
- */
- public void addToStyle(ApplContext ac, CssStyle style) {
- Css1Style style0 = (Css1Style) style;
- if (style0.cssMargin.left != null)
- style0.addRedefinitionWarning(ac, this);
- style0.cssMargin.left = this;
- }
+ /**
+ * Create a new CssMarginLeft
+ */
+ public CssMarginLeft() {
+ }
- /**
- * Get this property in the style.
- *
- * @param style The style where the property is
- * @param resolve if true, resolve the style to find this property
- */
- public CssProperty getPropertyInStyle(CssStyle style, boolean resolve) {
- if (resolve) {
- return ((Css1Style) style).getMarginLeft();
- } else {
- return ((Css1Style) style).cssMargin.getLeft();
- }
- }
+ /**
+ * Set the value of the property<br/>
+ * Does not check the number of values
+ *
+ * @param expression The expression for this property
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMarginLeft(ApplContext ac, CssExpression expression)
+ throws InvalidParamException {
+ this(ac, expression, false);
+ }
- /**
- * Compares two properties for equality.
- *
- * @param value The other property.
- */
- public boolean equals(CssProperty property) {
- return (property instanceof CssMarginLeft &&
- value.equals(((CssMarginLeft) property).value));
- }
+ /**
+ * Set the value of the property
+ *
+ * @param expression The expression for this property
+ * @param check set it to true to check the number of values
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMarginLeft(ApplContext ac, CssExpression expression,
+ boolean check) throws InvalidParamException {
+ setByUser();
+ value = CssMargin.checkValue(ac, expression, check, this);
+ }
}
Index: CssMarginTop.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/properties/css1/CssMarginTop.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- CssMarginTop.java 5 Jan 2010 13:49:44 -0000 1.4
+++ CssMarginTop.java 26 Sep 2012 08:43:53 -0000 1.5
@@ -1,110 +1,49 @@
-//
// $Id$
-// From Philippe Le Hegaret (Philippe.Le_Hegaret@sophia.inria.fr)
+// Author: Yves Lafon <ylafon@w3.org>
//
-// (c) COPYRIGHT MIT and INRIA, 1997.
+// (c) COPYRIGHT MIT, ERCIM and Keio University, 2012.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css1;
-import org.w3c.css.parser.CssStyle;
-import org.w3c.css.properties.css.CssProperty;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
/**
- * <H4>
- * 'margin-top'
- * </H4>
- * <P>
- * <EM>Value:</EM> <length> | <percentage> | auto<BR>
- * <EM>Initial:</EM> 0<BR>
- * <EM>Applies to:</EM> all elements<BR>
- * <EM>Inherited:</EM> no<BR>
- * <EM>Percentage values:</EM> refer to parent element's width<BR>
- * <P>
- * This property sets the top margin of an element:
- * <PRE>
- * H1 { margin-top: 2em }
- * </PRE>
- * <P>
- * A negative value is allowed, but there may be implementation-specific limits.
- * @version $Revision$
+ * @spec http://www.w3.org/TR/2008/REC-CSS1-20080411/#margin-top
*/
-public class CssMarginTop extends CssMarginSide {
-
- /**
- * Create a new CssMarginTop
- */
- public CssMarginTop() {
- super();
- }
-
- /**
- * Create a new CssMarginTop with an another CssMarginSide
- *
- * @param another The another side
- */
- public CssMarginTop(CssMarginSide another) {
- super(another);
- }
-
- /**
- * Create a new CssMarginTop
- *
- * @param expression The expression for this property.
- * @exception InvalidParamException Values are incorrect
- */
- public CssMarginTop(ApplContext ac, CssExpression expression)
- throws InvalidParamException {
- super(ac, expression);
- }
-
- public CssMarginTop(ApplContext ac, CssExpression expression, boolean check)
- throws InvalidParamException {
- super(ac, expression, check);
- }
-
- /**
- * Returns the name of this property
- */
- public String getPropertyName() {
- return "margin-top";
- }
-
- /**
- * Add this property to the CssStyle.
- *
- * @param style The CssStyle
- */
- public void addToStyle(ApplContext ac, CssStyle style) {
- Css1Style style0 = (Css1Style) style;
- if (style0.cssMargin.top != null)
- style0.addRedefinitionWarning(ac, this);
- style0.cssMargin.top = this;
- }
+public class CssMarginTop extends org.w3c.css.properties.css.CssMarginTop {
- /**
- * Get this property in the style.
- *
- * @param style The style where the property is
- * @param resolve if true, resolve the style to find this property
- */
- public CssProperty getPropertyInStyle(CssStyle style, boolean resolve) {
- if (resolve) {
- return ((Css1Style) style).getMarginTop();
- } else {
- return ((Css1Style) style).cssMargin.getTop();
- }
- }
+ /**
+ * Create a new CssMarginTop
+ */
+ public CssMarginTop() {
+ }
- /**
- * Compares two properties for equality.
- *
- * @param value The other property.
- */
- public boolean equals(CssProperty property) {
- return (property instanceof CssMarginTop && value.equals(((CssMarginTop) property).value));
- }
+ /**
+ * Set the value of the property<br/>
+ * Does not check the number of values
+ *
+ * @param expression The expression for this property
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMarginTop(ApplContext ac, CssExpression expression)
+ throws InvalidParamException {
+ this(ac, expression, false);
+ }
+ /**
+ * Set the value of the property
+ *
+ * @param expression The expression for this property
+ * @param check set it to true to check the number of values
+ * @throws org.w3c.css.util.InvalidParamException
+ * The expression is incorrect
+ */
+ public CssMarginTop(ApplContext ac, CssExpression expression,
+ boolean check) throws InvalidParamException {
+ setByUser();
+ value = CssMargin.checkValue(ac, expression, check, this);
+ }
}
Received on Wednesday, 26 September 2012 08:43:57 UTC