|
24 | 24 |
|
25 | 25 | public class LCH { |
26 | 26 | public static final CssIdent l, c, h, a; |
| 27 | + public static final CssIdent colorRelativeValues[]; |
27 | 28 |
|
28 | 29 | static { |
29 | 30 | l = CssIdent.getIdent("l"); |
30 | 31 | c = CssIdent.getIdent("c"); |
31 | 32 | h = CssIdent.getIdent("h"); |
32 | 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; |
| 40 | + } |
| 41 | + |
| 42 | + public static boolean isColorRelativeValue(CssIdent ident) { |
| 43 | + for (CssIdent id : colorRelativeValues) { |
| 44 | + if (id.equals(ident)) { |
| 45 | + return true; |
| 46 | + } |
| 47 | + } |
| 48 | + return false; |
33 | 49 | } |
34 | 50 |
|
35 | 51 | String output = null; |
@@ -109,7 +125,7 @@ public static final LCH parseLCHColor(ApplContext ac, CssExpression exp, CssColo |
109 | 125 | break; |
110 | 126 | case CssTypes.CSS_IDENT: |
111 | 127 | if (CssColor.none.equals(val.getIdent()) || |
112 | | - (lch.isRelative && l.equals(val.getIdent()))) { |
| 128 | + (lch.isRelative && isColorRelativeValue(val.getIdent()))) { |
113 | 129 | lch.setL(ac, val); |
114 | 130 | break; |
115 | 131 | } |
@@ -138,7 +154,7 @@ public static final LCH parseLCHColor(ApplContext ac, CssExpression exp, CssColo |
138 | 154 | break; |
139 | 155 | case CssTypes.CSS_IDENT: |
140 | 156 | if (CssColor.none.equals(val.getIdent()) || |
141 | | - (lch.isRelative && c.equals(val.getIdent()))) { |
| 157 | + (lch.isRelative && isColorRelativeValue(val.getIdent()))) { |
142 | 158 | lch.setC(ac, val); |
143 | 159 | break; |
144 | 160 | } |
@@ -167,7 +183,7 @@ public static final LCH parseLCHColor(ApplContext ac, CssExpression exp, CssColo |
167 | 183 | break; |
168 | 184 | case CssTypes.CSS_IDENT: |
169 | 185 | if (CssColor.none.equals(val.getIdent()) || |
170 | | - (lch.isRelative && h.equals(val.getIdent()))) { |
| 186 | + (lch.isRelative && isColorRelativeValue(val.getIdent()))) { |
171 | 187 | lch.setH(ac, val); |
172 | 188 | break; |
173 | 189 | } |
@@ -207,7 +223,7 @@ public static final LCH parseLCHColor(ApplContext ac, CssExpression exp, CssColo |
207 | 223 | break; |
208 | 224 | case CssTypes.CSS_IDENT: |
209 | 225 | if (CssColor.none.equals(val.getIdent()) || |
210 | | - (lch.isRelative && a.equals(val.getIdent()))) { |
| 226 | + (lch.isRelative && isColorRelativeValue(val.getIdent()))) { |
211 | 227 | lch.setAlpha(ac, val); |
212 | 228 | break; |
213 | 229 | } |
|
0 commit comments