1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
|
/*
* Copyright (c) 2000 World Wide Web Consortium,
* (Massachusetts Institute of Technology, Institut National de
* Recherche en Informatique et en Automatique, Keio University). All
* Rights Reserved. This program is distributed under the W3C's Software
* Intellectual Property License. This program is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE.
* See W3C License http://www.w3.org/Consortium/Legal/ for more details.
*
* $Id: SelectorFactoryImpl.java,v 1.2 2000/07/27 21:32:26 plehegar Exp $
*/
package org.w3c.flute.parser.selectors;
import org.w3c.css.sac.SelectorFactory;
import org.w3c.css.sac.ConditionalSelector;
import org.w3c.css.sac.NegativeSelector;
import org.w3c.css.sac.SimpleSelector;
import org.w3c.css.sac.ElementSelector;
import org.w3c.css.sac.CharacterDataSelector;
import org.w3c.css.sac.ProcessingInstructionSelector;
import org.w3c.css.sac.SiblingSelector;
import org.w3c.css.sac.DescendantSelector;
import org.w3c.css.sac.Selector;
import org.w3c.css.sac.Condition;
import org.w3c.css.sac.CSSException;
/**
* @version $Revision: 1.2 $
* @author Philippe Le Hegaret
*/
public class SelectorFactoryImpl implements SelectorFactory {
/**
* Creates a conditional selector.
*
* @param selector a selector.
* @param condition a condition
* @return the conditional selector.
* @exception CSSException If this selector is not supported.
*/
public ConditionalSelector createConditionalSelector(SimpleSelector selector,
Condition condition)
throws CSSException {
return new ConditionalSelectorImpl(selector, condition);
}
/**
* Creates an any node selector.
*
* @return the any node selector.
* @exception CSSException If this selector is not supported.
*/
public SimpleSelector createAnyNodeSelector() throws CSSException {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
}
/**
* Creates an root node selector.
*
* @return the root node selector.
* @exception CSSException If this selector is not supported.
*/
public SimpleSelector createRootNodeSelector() throws CSSException {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
}
/**
* Creates an negative selector.
*
* @param selector a selector.
* @return the negative selector.
* @exception CSSException If this selector is not supported.
*/
public NegativeSelector createNegativeSelector(SimpleSelector selector)
throws CSSException {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
}
/**
* Creates an element selector.
*
* @param namespaceURI the <a href="http://www.w3.org/TR/REC-xml-names/#dt-NSName">namespace
* URI</a> of the element selector.
* @param tagName the <a href="http://www.w3.org/TR/REC-xml-names/#NT-LocalPart">local
* part</a> of the element name. <code>NULL</code> if this element
* selector can match any element.</p>
* @return the element selector
* @exception CSSException If this selector is not supported.
*/
public ElementSelector createElementSelector(String namespaceURI, String localName)
throws CSSException {
if (namespaceURI != null) {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
} else {
return new ElementSelectorImpl(localName);
}
}
/**
* Creates a text node selector.
*
* @param data the data
* @return the text node selector
* @exception CSSException If this selector is not supported.
*/
public CharacterDataSelector createTextNodeSelector(String data)
throws CSSException {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
}
/**
* Creates a cdata section node selector.
*
* @param data the data
* @return the cdata section node selector
* @exception CSSException If this selector is not supported.
*/
public CharacterDataSelector createCDataSectionSelector(String data)
throws CSSException {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
}
/**
* Creates a processing instruction node selector.
*
* @param target the target
* @param data the data
* @return the processing instruction node selector
* @exception CSSException If this selector is not supported.
*/
public ProcessingInstructionSelector
createProcessingInstructionSelector(String target,
String data)
throws CSSException {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
}
/**
* Creates a comment node selector.
*
* @param data the data
* @return the comment node selector
* @exception CSSException If this selector is not supported.
*/
public CharacterDataSelector createCommentSelector(String data)
throws CSSException {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
}
/**
* Creates a pseudo element selector.
*
* @param pseudoName the pseudo element name. <code>NULL</code> if this
* element selector can match any pseudo element.</p>
* @return the element selector
* @exception CSSException If this selector is not supported.
*/
public ElementSelector createPseudoElementSelector(String namespaceURI,
String pseudoName)
throws CSSException {
if (namespaceURI != null) {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
} else {
return new PseudoElementSelectorImpl(pseudoName);
}
}
/**
* Creates a descendant selector.
*
* @param parent the parent selector
* @param descendant the descendant selector
* @return the combinator selector.
* @exception CSSException If this selector is not supported.
*/
public DescendantSelector createDescendantSelector(Selector parent,
SimpleSelector descendant)
throws CSSException {
return new DescendantSelectorImpl(parent, descendant);
}
/**
* Creates a child selector.
*
* @param parent the parent selector
* @param child the child selector
* @return the combinator selector.
* @exception CSSException If this selector is not supported.
*/
public DescendantSelector createChildSelector(Selector parent,
SimpleSelector child)
throws CSSException {
return new ChildSelectorImpl(parent, child);
}
/**
* Creates a direct adjacent selector.
*
* @param child the child selector
* @param adjacent the direct adjacent selector
* @return the combinator selector.
* @exception CSSException If this selector is not supported.
*/
public SiblingSelector createDirectAdjacentSelector(short nodeType,
Selector child,
SimpleSelector directAdjacent)
throws CSSException {
if (nodeType != 1) {
throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
} else {
return new DirectAdjacentSelectorImpl(child, directAdjacent);
}
}
}
|