blob: fa2e7136cba0d8b6f5a1bb6d8a7c921144b99e6d [file] [log] [blame]
/*
* Copyright (c) 1999 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: SelectorFactory.java,v 1.1 2009/12/06 10:40:08 rsternber Exp $
*/
package org.w3c.css.sac;
/**
* @version $Revision: 1.1 $
* @author Philippe Le Hegaret
* @see org.w3c.css.sac.Selector
*/
public interface 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.
*/
ConditionalSelector createConditionalSelector(SimpleSelector selector,
Condition condition)
throws CSSException;
/**
* Creates an any node selector.
*
* @return the any node selector.
* @exception CSSException If this selector is not supported.
*/
SimpleSelector createAnyNodeSelector() throws CSSException;
/**
* Creates an root node selector.
*
* @return the root node selector.
* @exception CSSException If this selector is not supported.
*/
SimpleSelector createRootNodeSelector() throws CSSException;
/**
* Creates an negative selector.
*
* @param selector a selector.
* @return the negative selector.
* @exception CSSException If this selector is not supported.
*/
NegativeSelector createNegativeSelector(SimpleSelector selector)
throws CSSException;
/**
* 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.
*/
ElementSelector createElementSelector(String namespaceURI, String tagName)
throws CSSException;
/**
* Creates a text node selector.
*
* @param data the data
* @return the text node selector
* @exception CSSException If this selector is not supported.
*/
CharacterDataSelector createTextNodeSelector(String data)
throws CSSException;
/**
* Creates a cdata section node selector.
*
* @param data the data
* @return the cdata section node selector
* @exception CSSException If this selector is not supported.
*/
CharacterDataSelector createCDataSectionSelector(String data)
throws CSSException;
/**
* 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.
*/
ProcessingInstructionSelector
createProcessingInstructionSelector(String target,
String data)
throws CSSException;
/**
* Creates a comment node selector.
*
* @param data the data
* @return the comment node selector
* @exception CSSException If this selector is not supported.
*/
CharacterDataSelector createCommentSelector(String data)
throws CSSException;
/**
* 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.
*/
ElementSelector createPseudoElementSelector(String namespaceURI,
String pseudoName)
throws CSSException;
/**
* 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.
*/
DescendantSelector createDescendantSelector(Selector parent,
SimpleSelector descendant)
throws CSSException;
/**
* 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.
*/
DescendantSelector createChildSelector(Selector parent,
SimpleSelector child)
throws CSSException;
/**
* Creates a sibling selector.
*
* @param nodeType the type of nodes in the siblings list.
* @param child the child selector
* @param directAdjacent the direct adjacent selector
* @return the sibling selector with nodeType
* equals to org.w3c.dom.Node.ELEMENT_NODE
* @exception CSSException If this selector is not supported.
*/
SiblingSelector createDirectAdjacentSelector(short nodeType,
Selector child,
SimpleSelector directAdjacent)
throws CSSException;
}