Skip to content

Commit c4ec7e8

Browse files
committed
1 parent 8304da0 commit c4ec7e8

3 files changed

Lines changed: 283 additions & 279 deletions

File tree

org/w3c/css/values/CssColor.java

Lines changed: 3 additions & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.w3c.css.util.CssVersion;
1212
import org.w3c.css.util.InvalidParamException;
1313
import org.w3c.css.values.color.ColorMix;
14+
import org.w3c.css.values.color.DeviceCMYK;
1415
import org.w3c.css.values.color.HSL;
1516
import org.w3c.css.values.color.HWB;
1617
import org.w3c.css.values.color.LAB;
@@ -778,149 +779,8 @@ public void setOKLCHColor(ApplContext ac, CssExpression exp)
778779

779780
public void setDeviceCMYKColor(ApplContext ac, CssExpression exp)
780781
throws InvalidParamException {
781-
// HWB defined in CSSColor Level 4 and onward, currently used in the CSS level
782-
if (ac.getCssVersion().compareTo(CssVersion.CSS3) < 0) {
783-
StringBuilder sb = new StringBuilder();
784-
sb.append("device-cmyk(").append(exp.toStringFromStart()).append(')');
785-
throw new InvalidParamException("notversion", sb.toString(),
786-
ac.getCssVersionString(), ac);
787-
}
788-
789-
color = null;
790-
cmyk = new DeviceCMYK();
791-
CssValue val = exp.getValue();
792-
char op = exp.getOperator();
793-
boolean gotFallback = false;
794-
795-
if (exp.hasCssVariable()) {
796-
markCssVariable();
797-
}
798-
// C
799-
if ((val == null || op != SPACE) && !hasCssVariable()) {
800-
throw new InvalidParamException("invalid-color", ac);
801-
}
802-
switch (val.getType()) {
803-
case CssTypes.CSS_NUMBER:
804-
case CssTypes.CSS_PERCENTAGE:
805-
case CssTypes.CSS_VARIABLE:
806-
cmyk.setC(ac, val);
807-
break;
808-
default:
809-
if (!hasCssVariable()) {
810-
throw new InvalidParamException("colorfunc", val, "device-cmyk", ac);
811-
}
812-
}
813-
814-
// M
815-
exp.next();
816-
val = exp.getValue();
817-
op = exp.getOperator();
818-
if ((val == null || op != SPACE) && !hasCssVariable()) {
819-
exp.starts();
820-
throw new InvalidParamException("invalid-color", ac);
821-
}
822-
switch (val.getType()) {
823-
case CssTypes.CSS_NUMBER:
824-
case CssTypes.CSS_PERCENTAGE:
825-
case CssTypes.CSS_VARIABLE:
826-
cmyk.setM(ac, val);
827-
break;
828-
default:
829-
if (!hasCssVariable()) {
830-
exp.starts();
831-
throw new InvalidParamException("colorfunc", val, "device-cmyk", ac);
832-
}
833-
}
834-
835-
// Y
836-
exp.next();
837-
val = exp.getValue();
838-
op = exp.getOperator();
839-
if ((val == null) && !hasCssVariable()) {
840-
throw new InvalidParamException("colorfunc", exp.toStringFromStart(), "device-cmyk", ac);
841-
}
842-
switch (val.getType()) {
843-
case CssTypes.CSS_NUMBER:
844-
case CssTypes.CSS_PERCENTAGE:
845-
case CssTypes.CSS_VARIABLE:
846-
cmyk.setY(ac, val);
847-
break;
848-
default:
849-
if (!hasCssVariable()) {
850-
exp.starts();
851-
throw new InvalidParamException("colorfunc", val, "device-cmyk", ac);
852-
}
853-
}
854-
// K
855-
exp.next();
856-
val = exp.getValue();
857-
op = exp.getOperator();
858-
if ((val == null) && !hasCssVariable()) {
859-
throw new InvalidParamException("colorfunc", exp.toStringFromStart(), "device-cmyk", ac);
860-
}
861-
switch (val.getType()) {
862-
case CssTypes.CSS_NUMBER:
863-
case CssTypes.CSS_PERCENTAGE:
864-
case CssTypes.CSS_VARIABLE:
865-
cmyk.setK(ac, val);
866-
break;
867-
default:
868-
if (!hasCssVariable()) {
869-
exp.starts();
870-
throw new InvalidParamException("colorfunc", val, "device-cmyk", ac);
871-
}
872-
}
873-
874-
exp.next();
875-
if (!exp.end()) {
876-
if ((op == SPACE) && !hasCssVariable()) {
877-
// now we need an alpha.
878-
val = exp.getValue();
879-
op = exp.getOperator();
880-
881-
if ((val.getType() != CssTypes.CSS_SWITCH) && !hasCssVariable()) {
882-
throw new InvalidParamException("rgb", val, ac);
883-
}
884-
if ((op != SPACE) && !hasCssVariable()) {
885-
throw new InvalidParamException("invalid-color", ac);
886-
}
887-
exp.next();
888-
// now we get the alpha value
889-
val = exp.getValue();
890-
if ((val == null) && !hasCssVariable()) {
891-
throw new InvalidParamException("invalid-color", exp.toStringFromStart(), ac);
892-
}
893-
switch (val.getType()) {
894-
case CssTypes.CSS_NUMBER:
895-
case CssTypes.CSS_PERCENTAGE:
896-
case CssTypes.CSS_VARIABLE:
897-
cmyk.setAlpha(ac, val);
898-
break;
899-
default:
900-
if (!hasCssVariable()) {
901-
exp.starts();
902-
throw new InvalidParamException("colorfunc", val, "device-cmyk", ac);
903-
}
904-
}
905-
// need to check if we get a comma after this.
906-
op = exp.getOperator();
907-
exp.next();
908-
}
909-
if (op == COMMA) {
910-
//the optional fallback
911-
if (exp.end() && !hasCssVariable()) {
912-
throw new InvalidParamException("colorfunc", exp.toStringFromStart(), "device-cmyk", ac);
913-
}
914-
val = exp.getValue();
915-
cmyk.setFallbackColor(ac, val);
916-
exp.next();
917-
}
918-
}
919-
// extra values?
920-
if (!exp.end() && !hasCssVariable()) {
921-
exp.starts();
922-
throw new InvalidParamException("colorfunc", exp.toStringFromStart(), "device-cmyk", ac);
923-
}
782+
// HWB defined in CSSColor Level 5 and onward, currently used in the CSS level
783+
cmyk = DeviceCMYK.parseDeviceCMYK(ac, exp, this);
924784
}
925785

926786
public void setColorMix(ApplContext ac, CssExpression exp)

org/w3c/css/values/DeviceCMYK.java

Lines changed: 0 additions & 136 deletions
This file was deleted.

0 commit comments

Comments
 (0)