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.URIValue; 23 import org.apache.batik.css.engine.value.Value; 24 import org.apache.batik.css.engine.value.ValueManager; 25 import org.apache.batik.util.CSSConstants; 26 import org.w3c.css.sac.LexicalUnit; 27 import org.w3c.dom.DOMException ; 28 import org.w3c.dom.css.CSSPrimitiveValue; 29 30 31 37 public class FilterManager extends AbstractValueManager { 38 39 42 public boolean isInheritedProperty() { 43 return false; 44 } 45 46 49 public String getPropertyName() { 50 return CSSConstants.CSS_FILTER_PROPERTY; 51 } 52 53 56 public Value getDefaultValue() { 57 return SVGValueConstants.NONE_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_URI: 70 return new URIValue(lu.getStringValue(), 71 resolveURI(engine.getCSSBaseURI(), 72 lu.getStringValue())); 73 74 case LexicalUnit.SAC_IDENT: 75 if (lu.getStringValue().equalsIgnoreCase 76 (CSSConstants.CSS_NONE_VALUE)) { 77 return SVGValueConstants.NONE_VALUE; 78 } 79 throw createInvalidIdentifierDOMException(lu.getStringValue()); 80 } 81 throw createInvalidLexicalUnitDOMException(lu.getLexicalUnitType()); 82 } 83 84 88 public Value createStringValue(short type, String value, CSSEngine engine) 89 throws DOMException { 90 if (type == CSSPrimitiveValue.CSS_IDENT) { 91 if (value.equalsIgnoreCase(CSSConstants.CSS_NONE_VALUE)) { 92 return SVGValueConstants.NONE_VALUE; 93 } 94 throw createInvalidIdentifierDOMException(value); 95 } 96 if (type == CSSPrimitiveValue.CSS_URI) { 97 return new URIValue(value, 98 resolveURI(engine.getCSSBaseURI(), value)); 99 } 100 throw createInvalidStringTypeDOMException(type); 101 } 102 } 103 | Popular Tags |