Skip to content

Commit 5895557

Browse files
committed
Aligned transform with the transform-1 CR of 20190214, some 3d functions that were
part of the 20120911 are still there, as they were moved to an edcopy of transform-2 but they were not updated as there is no fixed reference yet (nor intent to implement). See https://www.w3.org/TR/2019/CR-css-transforms-1-20190214/#propdef-transform
1 parent e6b3613 commit 5895557

File tree

1 file changed

+68
-45
lines changed

1 file changed

+68
-45
lines changed

org/w3c/css/properties/css3/CssTransform.java

Lines changed: 68 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// $Id$
1+
//
22
// Author: Yves Lafon <ylafon@w3.org>
33
//
4-
// (c) COPYRIGHT MIT, ERCIM and Keio University, 2012.
4+
// (c) COPYRIGHT MIT, ERCIM, Keio, Beihang 2012, 2019.
55
// Please first read the full copyright statement in file COPYRIGHT.html
6+
67
package org.w3c.css.properties.css3;
78

89
import org.w3c.css.properties.css.CssProperty;
@@ -20,7 +21,7 @@
2021
import static org.w3c.css.values.CssOperator.SPACE;
2122

2223
/**
23-
* @spec http://www.w3.org/TR/2012/WD-css3-transforms-20120911/#effects
24+
* @spec https://www.w3.org/TR/2019/CR-css-transforms-1-20190214/#propdef-transform
2425
*/
2526
public class CssTransform extends org.w3c.css.properties.css.CssTransform {
2627

@@ -124,47 +125,69 @@ protected static void parseFunctionValues(ApplContext ac, CssValue func, CssProp
124125
String fname = function.getName().toLowerCase();
125126
// waiting for jdk7 for the string-based switch/case
126127

127-
// 2d functions
128-
if (matrix.equals(fname)) {
129-
parseExactlyNX(ac, function.getParameters(), 6, CssTypes.CSS_NUMBER, caller);
130-
} else if (translate.equals(fname)) {
131-
parseTranslateFunction(ac, function.getParameters(), caller);
132-
} else if (translateX.equals(fname) || translateY.equals(fname)) {
133-
parseTranslateAxisFunction(ac, function.getParameters(), caller);
134-
} else if (scale.equals(fname)) {
135-
parseAtMostX(ac, function.getParameters(), 2, CssTypes.CSS_NUMBER, caller);
136-
} else if (scaleX.equals(fname) || scaleY.equals(fname)) {
137-
parseOneX(ac, function.getParameters(), CssTypes.CSS_NUMBER, caller);
138-
} else if (rotate.equals(fname)) {
139-
parseOneX(ac, function.getParameters(), CssTypes.CSS_ANGLE, caller);
140-
} else if (skew.equals(fname)) {
141-
parseAtMostX(ac, function.getParameters(), 2, CssTypes.CSS_ANGLE, caller);
142-
} else if (skewX.equals(fname) || skewY.equals(fname)) {
143-
parseOneX(ac, function.getParameters(), CssTypes.CSS_ANGLE, caller);
144-
/* after this line, 3d functions */
145-
} else if (matrix3d.equals(fname)) {
146-
parseExactlyNX(ac, function.getParameters(), 16, CssTypes.CSS_NUMBER, caller);
147-
} else if (translate3d.equals(fname)) {
148-
parseTranslate3dFunction(ac, function.getParameters(), caller);
149-
} else if (translateZ.endsWith(fname)) {
150-
parseOneX(ac, function.getParameters(), CssTypes.CSS_LENGTH, caller);
151-
} else if (scale3d.equals(fname)) {
152-
parseExactlyNX(ac, function.getParameters(), 3, CssTypes.CSS_NUMBER, caller);
153-
} else if (scaleZ.equals(fname)) {
154-
parseOneX(ac, function.getParameters(), CssTypes.CSS_NUMBER, caller);
155-
} else if (rotate3d.equals(fname)) {
156-
parseRotate3dFunction(ac, function.getParameters(), caller);
157-
} else if (rotateX.equals(fname) || rotateY.equals(fname) || rotateZ.equals(fname)) {
158-
parseOneX(ac, function.getParameters(), CssTypes.CSS_ANGLE, caller);
159-
} else if (perspective.endsWith(fname)) {
160-
parseOneX(ac, function.getParameters(), CssTypes.CSS_LENGTH, caller);
161-
} else {
162-
// unrecognized function
163-
throw new InvalidParamException("value",
164-
func.toString(),
165-
caller.getPropertyName(), ac);
128+
switch (fname) {
129+
// first, 2d functions
130+
case matrix:
131+
parseExactlyNX(ac, function.getParameters(), 6, CssTypes.CSS_NUMBER, caller);
132+
break;
133+
case translate:
134+
parseTranslateFunction(ac, function.getParameters(), caller);
135+
break;
136+
case translateX:
137+
case translateY:
138+
parseTranslateAxisFunction(ac, function.getParameters(), caller);
139+
break;
140+
case scale:
141+
parseAtMostX(ac, function.getParameters(), 2, CssTypes.CSS_NUMBER, caller);
142+
break;
143+
case scaleX:
144+
case scaleY:
145+
parseOneX(ac, function.getParameters(), CssTypes.CSS_NUMBER, caller);
146+
break;
147+
case rotate:
148+
parseOneX(ac, function.getParameters(), CssTypes.CSS_ANGLE, caller);
149+
break;
150+
case skew:
151+
parseAtMostX(ac, function.getParameters(), 2, CssTypes.CSS_ANGLE, caller);
152+
break;
153+
case skewX:
154+
case skewY:
155+
parseOneX(ac, function.getParameters(), CssTypes.CSS_ANGLE, caller);
156+
break;
157+
// 3d functions are only part of transform-2
158+
// theyr are listed here as part of the 20120911 WD, not the transform-1 20190214 CR
159+
case matrix3d:
160+
parseExactlyNX(ac, function.getParameters(), 16, CssTypes.CSS_NUMBER, caller);
161+
break;
162+
case translate3d:
163+
parseTranslate3dFunction(ac, function.getParameters(), caller);
164+
break;
165+
case translateZ:
166+
parseOneX(ac, function.getParameters(), CssTypes.CSS_LENGTH, caller);
167+
break;
168+
case scale3d:
169+
parseExactlyNX(ac, function.getParameters(), 3, CssTypes.CSS_NUMBER, caller);
170+
break;
171+
case scaleZ:
172+
parseOneX(ac, function.getParameters(), CssTypes.CSS_NUMBER, caller);
173+
break;
174+
case rotate3d:
175+
parseRotate3dFunction(ac, function.getParameters(), caller);
176+
break;
177+
case rotateX:
178+
case rotateY:
179+
case rotateZ:
180+
parseOneX(ac, function.getParameters(), CssTypes.CSS_ANGLE, caller);
181+
break;
182+
case perspective:
183+
parseOneX(ac, function.getParameters(), CssTypes.CSS_LENGTH, caller);
184+
break;
185+
// unknown function
186+
default:
187+
throw new InvalidParamException("value",
188+
func.toString(),
189+
caller.getPropertyName(), ac);
166190
}
167-
168191
}
169192

170193
private static void parseExactlyNX(ApplContext ac, CssExpression expression,
@@ -250,7 +273,7 @@ private static void parseOneX(ApplContext ac, CssExpression expression,
250273
// special cases
251274

252275

253-
// http://www.w3.org/TR/2012/WD-css3-transforms-20120911/#translate-function
276+
// https://www.w3.org/TR/2019/CR-css-transforms-1-20190214/#funcdef-transform-translate
254277
private static void parseTranslateFunction(ApplContext ac, CssExpression expression, CssProperty caller)
255278
throws InvalidParamException {
256279
if (expression.getCount() > 2) {
@@ -283,7 +306,7 @@ private static void parseTranslateFunction(ApplContext ac, CssExpression express
283306
}
284307
}
285308

286-
// http://www.w3.org/TR/2012/WD-css3-transforms-20120911/#translateX-function
309+
// https://www.w3.org/TR/2019/CR-css-transforms-1-20190214/#funcdef-transform-translatex
287310
private static void parseTranslateAxisFunction(ApplContext ac, CssExpression expression, CssProperty caller)
288311
throws InvalidParamException {
289312
if (expression.getCount() > 1) {

0 commit comments

Comments
 (0)