Skip to content

Commit e41bf5e

Browse files
committed
Followup to 39f98bf
in relative colors, the values can be use at any position
1 parent 39f98bf commit e41bf5e

File tree

4 files changed

+68
-39
lines changed

4 files changed

+68
-39
lines changed

org/w3c/css/values/color/HSL.java

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,24 @@
2727
import static org.w3c.css.values.CssOperator.SPACE;
2828

2929
public class HSL {
30-
public static final CssIdent h, s, l, a;
30+
public static final CssIdent[] colorRelativeValues;
3131

3232
static {
33-
h = CssIdent.getIdent("h");
34-
s = CssIdent.getIdent("s");
35-
l = CssIdent.getIdent("l");
36-
a = CssIdent.getIdent("alpha");
33+
String[] _allowed_values = {"h", "s", "l", "alpha"};
34+
colorRelativeValues = new CssIdent[_allowed_values.length];
35+
int i = 0;
36+
for (String s : _allowed_values) {
37+
colorRelativeValues[i++] = CssIdent.getIdent(s);
38+
}
39+
}
40+
41+
public static boolean isColorRelativeValue(CssIdent ident) {
42+
for (CssIdent id : colorRelativeValues) {
43+
if (id.equals(ident)) {
44+
return true;
45+
}
46+
}
47+
return false;
3748
}
3849

3950
String output = null;
@@ -140,7 +151,7 @@ public static final HSL parseHSL(ApplContext ac, CssExpression exp, CssColor cal
140151
break;
141152
case CssTypes.CSS_IDENT:
142153
if (separator_space && CssColor.none.equals(val.getIdent()) ||
143-
(hsl.isRelative && h.equals(val.getIdent()))) {
154+
(hsl.isRelative && isColorRelativeValue(val.getIdent()))) {
144155
hsl.setHue(ac, val);
145156
break;
146157
}
@@ -173,7 +184,7 @@ public static final HSL parseHSL(ApplContext ac, CssExpression exp, CssColor cal
173184
break;
174185
case CssTypes.CSS_IDENT:
175186
if (separator_space && CssColor.none.equals(val.getIdent()) ||
176-
(hsl.isRelative && s.equals(val.getIdent()))) {
187+
(hsl.isRelative && isColorRelativeValue(val.getIdent()))) {
177188
hsl.setSaturation(ac, val);
178189
break;
179190
}
@@ -204,7 +215,7 @@ public static final HSL parseHSL(ApplContext ac, CssExpression exp, CssColor cal
204215
break;
205216
case CssTypes.CSS_IDENT:
206217
if (separator_space && CssColor.none.equals(val.getIdent()) ||
207-
(hsl.isRelative && l.equals(val.getIdent()))) {
218+
(hsl.isRelative && isColorRelativeValue(val.getIdent()))) {
208219
hsl.setLightness(ac, val);
209220
break;
210221
}
@@ -263,7 +274,7 @@ public static final HSL parseHSL(ApplContext ac, CssExpression exp, CssColor cal
263274
break;
264275
case CssTypes.CSS_IDENT:
265276
if ((op != COMMA) && (CssColor.none.equals(val.getIdent()) ||
266-
(hsl.isRelative && a.equals(val.getIdent())))) {
277+
(hsl.isRelative && isColorRelativeValue(val.getIdent())))) {
267278
hsl.setAlpha(ac, val);
268279
break;
269280
}

org/w3c/css/values/color/HWB.java

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,25 @@
3030
import static org.w3c.css.values.CssOperator.SPACE;
3131

3232
public class HWB {
33-
public static final CssIdent h, w, b, a;
33+
34+
public static final CssIdent[] colorRelativeValues;
3435

3536
static {
36-
h = CssIdent.getIdent("h");
37-
w = CssIdent.getIdent("w");
38-
b = CssIdent.getIdent("b");
39-
a = CssIdent.getIdent("alpha");
37+
String[] _allowed_values = {"h", "w", "p", "alpha"};
38+
colorRelativeValues = new CssIdent[_allowed_values.length];
39+
int i = 0;
40+
for (String s : _allowed_values) {
41+
colorRelativeValues[i++] = CssIdent.getIdent(s);
42+
}
43+
}
44+
45+
public static boolean isColorRelativeValue(CssIdent ident) {
46+
for (CssIdent id : colorRelativeValues) {
47+
if (id.equals(ident)) {
48+
return true;
49+
}
50+
}
51+
return false;
4052
}
4153

4254
String output = null;
@@ -113,7 +125,7 @@ public static final HWB parseHWBColor(ApplContext ac, CssExpression exp, CssColo
113125
break;
114126
case CssTypes.CSS_IDENT:
115127
if (CssColor.none.equals(val.getIdent()) ||
116-
(hwb.isRelative && h.equals(val.getIdent()))) {
128+
(hwb.isRelative && isColorRelativeValue(val.getIdent()))) {
117129
hwb.setHue(ac, val);
118130
break;
119131
}
@@ -138,7 +150,7 @@ public static final HWB parseHWBColor(ApplContext ac, CssExpression exp, CssColo
138150
break;
139151
case CssTypes.CSS_IDENT:
140152
if (CssColor.none.equals(val.getIdent()) ||
141-
(hwb.isRelative && w.equals(val.getIdent()))) {
153+
(hwb.isRelative && isColorRelativeValue(val.getIdent()))) {
142154
hwb.setWhiteness(ac, val);
143155
break;
144156
}
@@ -166,7 +178,7 @@ public static final HWB parseHWBColor(ApplContext ac, CssExpression exp, CssColo
166178
break;
167179
case CssTypes.CSS_IDENT:
168180
if (CssColor.none.equals(val.getIdent()) ||
169-
(hwb.isRelative && b.equals(val.getIdent()))) {
181+
(hwb.isRelative && isColorRelativeValue(val.getIdent()))) {
170182
hwb.setBlackness(ac, val);
171183
break;
172184
}
@@ -209,7 +221,7 @@ public static final HWB parseHWBColor(ApplContext ac, CssExpression exp, CssColo
209221
break;
210222
case CssTypes.CSS_IDENT:
211223
if (CssColor.none.equals(val.getIdent()) ||
212-
(hwb.isRelative && a.equals(val.getIdent()))) {
224+
(hwb.isRelative && isColorRelativeValue(val.getIdent()))) {
213225
hwb.setAlpha(ac, val);
214226
break;
215227
}

org/w3c/css/values/color/LAB.java

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,24 @@
2020
import static org.w3c.css.values.CssOperator.SPACE;
2121

2222
public class LAB {
23-
public static final CssIdent l, a, b, al;
23+
public static final CssIdent[] colorRelativeValues;
2424

2525
static {
26-
l = CssIdent.getIdent("h");
27-
a = CssIdent.getIdent("s");
28-
b = CssIdent.getIdent("l");
29-
al = CssIdent.getIdent("alpha");
26+
String[] _allowed_values = {"l", "a", "b", "alpha"};
27+
colorRelativeValues = new CssIdent[_allowed_values.length];
28+
int i = 0;
29+
for (String s : _allowed_values) {
30+
colorRelativeValues[i++] = CssIdent.getIdent(s);
31+
}
32+
}
33+
34+
public static boolean isColorRelativeValue(CssIdent ident) {
35+
for (CssIdent id : colorRelativeValues) {
36+
if (id.equals(ident)) {
37+
return true;
38+
}
39+
}
40+
return false;
3041
}
3142

3243
String output = null;
@@ -138,7 +149,7 @@ public static final LAB parseLABColor(ApplContext ac, CssExpression exp, CssColo
138149
break;
139150
case CssTypes.CSS_IDENT:
140151
if (CssColor.none.equals(val.getIdent()) ||
141-
(lab.isRelative && l.equals(val.getIdent()))) {
152+
(lab.isRelative && isColorRelativeValue((val.getIdent())))) {
142153
lab.setL(ac, val);
143154
break;
144155
}
@@ -163,7 +174,7 @@ public static final LAB parseLABColor(ApplContext ac, CssExpression exp, CssColo
163174
break;
164175
case CssTypes.CSS_IDENT:
165176
if (CssColor.none.equals(val.getIdent()) ||
166-
(lab.isRelative && a.equals(val.getIdent()))) {
177+
(lab.isRelative && isColorRelativeValue(val.getIdent()))) {
167178
lab.setA(ac, val);
168179
break;
169180
}
@@ -191,7 +202,7 @@ public static final LAB parseLABColor(ApplContext ac, CssExpression exp, CssColo
191202
break;
192203
case CssTypes.CSS_IDENT:
193204
if (CssColor.none.equals(val.getIdent()) ||
194-
(lab.isRelative && b.equals(val.getIdent()))) {
205+
(lab.isRelative && isColorRelativeValue(val.getIdent()))) {
195206
lab.setB(ac, val);
196207
break;
197208
}
@@ -231,7 +242,7 @@ public static final LAB parseLABColor(ApplContext ac, CssExpression exp, CssColo
231242
break;
232243
case CssTypes.CSS_IDENT:
233244
if (CssColor.none.equals(val.getIdent()) ||
234-
(lab.isRelative && al.equals(val.getIdent()))) {
245+
(lab.isRelative && isColorRelativeValue(val.getIdent()))) {
235246
lab.setAlpha(ac, val);
236247
break;
237248
}

org/w3c/css/values/color/LCH.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,15 @@
2323
import static org.w3c.css.values.CssOperator.SPACE;
2424

2525
public class LCH {
26-
public static final CssIdent l, c, h, a;
27-
public static final CssIdent colorRelativeValues[];
26+
public static final CssIdent[] colorRelativeValues;
2827

2928
static {
30-
l = CssIdent.getIdent("l");
31-
c = CssIdent.getIdent("c");
32-
h = CssIdent.getIdent("h");
33-
a = CssIdent.getIdent("alpha");
34-
35-
colorRelativeValues = new CssIdent[4];
36-
colorRelativeValues[0] = l;
37-
colorRelativeValues[1] = c;
38-
colorRelativeValues[2] = h;
39-
colorRelativeValues[3] = a;
29+
String[] _allowed_values = {"l", "c", "h", "alpha"};
30+
colorRelativeValues = new CssIdent[_allowed_values.length];
31+
int i = 0;
32+
for (String s : _allowed_values) {
33+
colorRelativeValues[i++] = CssIdent.getIdent(s);
34+
}
4035
}
4136

4237
public static boolean isColorRelativeValue(CssIdent ident) {

0 commit comments

Comments
 (0)