Frames | No Frames |
1: /* 2: * Copyright (c) 2000 World Wide Web Consortium, 3: * (Massachusetts Institute of Technology, Institut National de 4: * Recherche en Informatique et en Automatique, Keio University). All 5: * Rights Reserved. This program is distributed under the W3C's Software 6: * Intellectual Property License. This program is distributed in the 7: * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8: * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9: * PURPOSE. 10: * See W3C License http://www.w3.org/Consortium/Legal/ for more details. 11: * 12: * $Id: ConditionFactoryImpl.java,v 1.1.1.1 2006/04/23 14:51:55 taqua Exp $ 13: */ 14: package org.w3c.flute.parser.selectors; 15: 16: import org.w3c.css.sac.CSSException; 17: import org.w3c.css.sac.Condition; 18: import org.w3c.css.sac.AttributeCondition; 19: import org.w3c.css.sac.LangCondition; 20: import org.w3c.css.sac.ContentCondition; 21: import org.w3c.css.sac.CombinatorCondition; 22: import org.w3c.css.sac.PositionalCondition; 23: import org.w3c.css.sac.NegativeCondition; 24: import org.w3c.css.sac.ConditionFactory; 25: 26: /** 27: * @version $Revision: 1.1.1.1 $ 28: * @author Philippe Le Hegaret 29: */ 30: public class ConditionFactoryImpl implements ConditionFactory { 31: 32: /** 33: * Creates an and condition 34: * 35: * @param first the first condition 36: * @param second the second condition 37: * @return A combinator condition 38: * @exception CSSException if this exception is not supported. 39: */ 40: public CombinatorCondition createAndCondition(Condition first, 41: Condition second) 42: throws CSSException { 43: return new AndConditionImpl(first, second); 44: } 45: 46: /** 47: * Creates an or condition 48: * 49: * @param first the first condition 50: * @param second the second condition 51: * @return A combinator condition 52: * @exception CSSException if this exception is not supported. 53: */ 54: public CombinatorCondition createOrCondition(Condition first, 55: Condition second) 56: throws CSSException { 57: throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR); 58: } 59: 60: /** 61: * Creates a negative condition 62: * 63: * @param condition the condition 64: * @return A negative condition 65: * @exception CSSException if this exception is not supported. 66: */ 67: public NegativeCondition createNegativeCondition(Condition condition) 68: throws CSSException { 69: throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR); 70: } 71: 72: 73: /** 74: * Creates a positional condition 75: * 76: * @param position the position of the node in the list. 77: * @param typeNode <code>true</code> if the list should contain 78: * only nodes of the same type (element, text node, ...). 79: * @param type <code>true</code> true if the list should contain 80: * only nodes of the same node (for element, same localName 81: * and same namespaceURI). 82: * @return A positional condition 83: * @exception CSSException if this exception is not supported. 84: */ 85: public PositionalCondition createPositionalCondition(int position, 86: boolean typeNode, 87: boolean type) 88: throws CSSException { 89: throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR); 90: } 91: 92: /** 93: * creates an attribute condition 94: * 95: * @param localName the localName of the attribute 96: * @param namespaceURI the namespace URI of the attribute 97: * @param specified <code>true</code> if the attribute must be specified 98: * in the document. 99: * @param value the value of this attribute. 100: * @return An attribute condition 101: * @exception CSSException if this exception is not supported. 102: */ 103: public AttributeCondition createAttributeCondition(String localName, 104: String namespaceURI, 105: boolean specified, 106: String value) 107: throws CSSException { 108: if ((namespaceURI != null) || specified) { 109: throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR); 110: } else { 111: return new AttributeConditionImpl(localName, value); 112: } 113: } 114: 115: /** 116: * Creates an id condition 117: * 118: * @param value the value of the id. 119: * @return An Id condition 120: * @exception CSSException if this exception is not supported. 121: */ 122: public AttributeCondition createIdCondition(String value) 123: throws CSSException { 124: return new IdConditionImpl(value); 125: } 126: 127: /** 128: * Creates a lang condition 129: * 130: * @param value the value of the language. 131: * @return A lang condition 132: * @exception CSSException if this exception is not supported. 133: */ 134: public LangCondition createLangCondition(String lang) 135: throws CSSException { 136: return new LangConditionImpl(lang); 137: } 138: 139: /** 140: * Creates a "one of" attribute condition 141: * 142: * @param localName the localName of the attribute 143: * @param namespaceURI the namespace URI of the attribute 144: * @param specified <code>true</code> if the attribute must be specified 145: * in the document. 146: * @param value the value of this attribute. 147: * @return A "one of" attribute condition 148: * @exception CSSException if this exception is not supported. 149: */ 150: public AttributeCondition createOneOfAttributeCondition(String localName, 151: String namespaceURI, 152: boolean specified, 153: String value) 154: throws CSSException { 155: if ((namespaceURI != null) || specified) { 156: throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR); 157: } else { 158: return new OneOfAttributeConditionImpl(localName, value); 159: } 160: } 161: 162: /** 163: * Creates a "begin hyphen" attribute condition 164: * 165: * @param localName the localName of the attribute 166: * @param namespaceURI the namespace URI of the attribute 167: * @param specified <code>true</code> if the attribute must be specified 168: * in the document. 169: * @param value the value of this attribute. 170: * @return A "begin hyphen" attribute condition 171: * @exception CSSException if this exception is not supported. 172: */ 173: public AttributeCondition createBeginHyphenAttributeCondition(String localName, 174: String namespaceURI, 175: boolean specified, 176: String value) 177: throws CSSException { 178: if ((namespaceURI != null) || specified) { 179: throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR); 180: } else { 181: return new BeginHyphenAttributeConditionImpl(localName, value); 182: } 183: } 184: 185: /** 186: * Creates a class condition 187: * 188: * @param localName the localName of the attribute 189: * @param namespaceURI the namespace URI of the attribute 190: * @param specified <code>true</code> if the attribute must be specified 191: * in the document. 192: * @param value the name of the class. 193: * @return A class condition 194: * @exception CSSException if this exception is not supported. 195: */ 196: public AttributeCondition createClassCondition(String namespaceURI, 197: String value) 198: throws CSSException { 199: return new ClassConditionImpl(value); 200: } 201: 202: /** 203: * Creates a pseudo class condition 204: * 205: * @param namespaceURI the namespace URI of the attribute 206: * @param value the name of the pseudo class 207: * @return A pseudo class condition 208: * @exception CSSException if this exception is not supported. 209: */ 210: public AttributeCondition createPseudoClassCondition(String namespaceURI, 211: String value) 212: throws CSSException { 213: return new PseudoClassConditionImpl(value); 214: } 215: 216: /** 217: * Creates a "only one" child condition 218: * 219: * @return A "only one" child condition 220: * @exception CSSException if this exception is not supported. 221: */ 222: public Condition createOnlyChildCondition() throws CSSException { 223: throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR); 224: } 225: 226: /** 227: * Creates a "only one" type condition 228: * 229: * @return A "only one" type condition 230: * @exception CSSException if this exception is not supported. 231: */ 232: public Condition createOnlyTypeCondition() throws CSSException { 233: throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR); 234: } 235: 236: /** 237: * Creates a content condition 238: * 239: * @param data the data in the content 240: * @return A content condition 241: * @exception CSSException if this exception is not supported. 242: */ 243: public ContentCondition createContentCondition(String data) 244: throws CSSException { 245: throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR); 246: } 247: }