1 18 package org.apache.batik.css.engine.value.svg; 19 20 import org.apache.batik.css.engine.CSSEngine; 21 import org.apache.batik.css.engine.value.AbstractValueManager; 22 import org.apache.batik.css.engine.value.StringValue; 23 import org.apache.batik.css.engine.value.URIValue; 24 import org.apache.batik.css.engine.value.Value; 25 import org.apache.batik.css.engine.value.ValueManager; 26 import org.apache.batik.util.CSSConstants; 27 import org.w3c.css.sac.LexicalUnit; 28 import org.w3c.dom.DOMException ; 29 import org.w3c.dom.css.CSSPrimitiveValue; 30 31 37 public class ColorProfileManager extends AbstractValueManager { 38 39 42 public boolean isInheritedProperty() { 43 return true; 44 } 45 46 49 public String getPropertyName() { 50 return CSSConstants.CSS_COLOR_PROFILE_PROPERTY; 51 } 52 53 56 public Value getDefaultValue() { 57 return SVGValueConstants.AUTO_VALUE; 58 } 59 60 63 public Value createValue(LexicalUnit lu, CSSEngine engine) 64 throws DOMException { 65 switch (lu.getLexicalUnitType()) { 66 case LexicalUnit.SAC_INHERIT: 67 return SVGValueConstants.INHERIT_VALUE; 68 69 case LexicalUnit.SAC_IDENT: 70 String s = lu.getStringValue().toLowerCase(); 71 if (s.equals(CSSConstants.CSS_AUTO_VALUE)) { 72 return SVGValueConstants.AUTO_VALUE; 73 } 74 if (s.equals(CSSConstants.CSS_SRGB_VALUE)) { 75 return SVGValueConstants.SRGB_VALUE; 76 } 77 return new StringValue(CSSPrimitiveValue.CSS_IDENT, s); 78 79 case LexicalUnit.SAC_URI: 80 return new URIValue(lu.getStringValue(), 81 resolveURI(engine.getCSSBaseURI(), 82 lu.getStringValue())); 83 } 84 throw createInvalidLexicalUnitDOMException(lu.getLexicalUnitType()); 85 } 86 87 91 public Value createStringValue(short type, String value, CSSEngine engine) 92 throws DOMException { 93 switch (type) { 94 case CSSPrimitiveValue.CSS_IDENT: 95 String s = value.toLowerCase(); 96 if (s.equals(CSSConstants.CSS_AUTO_VALUE)) { 97 return SVGValueConstants.AUTO_VALUE; 98 } 99 if (s.equals(CSSConstants.CSS_SRGB_VALUE)) { 100 return SVGValueConstants.SRGB_VALUE; 101 } 102 return new StringValue(CSSPrimitiveValue.CSS_IDENT, s); 103 104 case CSSPrimitiveValue.CSS_URI: 105 return new URIValue(value, 106 resolveURI(engine.getCSSBaseURI(), value)); 107 } 108 throw createInvalidStringTypeDOMException(type); 109 } 110 } 111 | Popular Tags |