w3c.css.values.DeviceCMYK Maven / Gradle / Ivy
//
// Author: Yves Lafon
//
// (c) COPYRIGHT MIT, ERCIM, Keio University, Beihang University 2018.
// Please first read the full copyright statement in file COPYRIGHT.html
//
package org.w3c.css.values;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
public class DeviceCMYK {
String output = null;
CssValue vc, vy, vm, vk, alpha, fallback = null;
boolean faSet = false;
/**
* Create a new DeviceCYMK
*/
public DeviceCMYK() {
}
public final void setC(ApplContext ac, CssValue val)
throws InvalidParamException {
output = null;
vc = RGBA.filterAlpha(ac, val);
}
public final void setY(ApplContext ac, CssValue val)
throws InvalidParamException {
output = null;
vy = RGBA.filterAlpha(ac, val);
}
public final void setM(ApplContext ac, CssValue val)
throws InvalidParamException {
output = null;
vm = RGBA.filterAlpha(ac, val);
}
public final void setK(ApplContext ac, CssValue val)
throws InvalidParamException {
output = null;
vk = RGBA.filterAlpha(ac, val);
}
public final void setAlpha(ApplContext ac, CssValue val)
throws InvalidParamException {
output = null;
faSet = true;
alpha = RGBA.filterAlpha(ac, val);
}
public final void setFallbackColor(ApplContext ac, CssValue val)
throws InvalidParamException {
output = null;
switch (val.getType()) {
case CssTypes.CSS_HASH_IDENT:
CssColor c = new org.w3c.css.values.CssColor();
c.setShortRGBColor(ac, val.toString());
fallback = c;
break;
case CssTypes.CSS_IDENT:
fallback = new CssColor(ac, (String) val.get());
break;
case CssTypes.CSS_COLOR:
fallback = val;
break;
case CssTypes.CSS_FUNCTION:
CssFunction attr = (CssFunction) val;
CssExpression params = attr.getParameters();
String fname = attr.getName();
if (fname.equals("attr")) {
CssValue v1 = params.getValue();
params.next();
CssValue v2 = params.getValue();
if ((params.getCount() != 2)) {
throw new InvalidParamException("value",
params.getValue(),
val.toString(), ac);
} else if (v1.getType() != CssTypes.CSS_IDENT) {
throw new InvalidParamException("value",
params.getValue(),
val.toString(), ac);
} else if (!(v2.toString().equals("color"))) {
throw new InvalidParamException("value",
params.getValue(),
val.toString(), ac);
} else {
fallback = val;
}
} else {
throw new InvalidParamException("value",
params.getValue(),
val.toString(), ac);
}
break;
default:
throw new InvalidParamException("value", "color",
val.toString(), ac);
}
}
public boolean equals(DeviceCMYK other) {
if (other != null) {
return (vc.equals(other.vc) && vm.equals(other.vm) && vy.equals(other.vy) && vk.equals(other.vk) &&
((alpha == null && other.alpha == null) || (alpha != null && alpha.equals(other.alpha))));
}
return false;
}
/**
* Returns a string representation of the object.
*/
public String toString() {
if (output == null) {
StringBuilder sb = new StringBuilder("device-cmyk(");
sb.append(vc).append(' ');
sb.append(vm).append(' ');
sb.append(vy).append(' ');
sb.append(vk);
if (faSet) {
sb.append(" / ").append(alpha);
}
if (fallback != null) {
sb.append(", ").append(fallback);
}
sb.append(')');
output = sb.toString();
}
return output;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy