File: SelectorFactoryImpl.java

package info (click to toggle)
flutejava 1.3-3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 1,316 kB
  • ctags: 1,070
  • sloc: java: 8,251; makefile: 51
file content (217 lines) | stat: -rw-r--r-- 7,266 bytes parent folder | download | duplicates (2)
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);
	}
    }

}