blob: 5ca82d518e8fe6e47cd1573caf016bfb4a486e95 [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: Selector.java,v 1.1 2009/12/06 10:40:08 rsternber Exp $
*/
package org.w3c.css.sac;
/**
* This interface defines a selector.
* <p><b>Remarks</b>: Not all the following selectors are supported (or will be
* supported) by CSS.
* <p>All examples are CSS2 compliant.
*
* @version $Revision: 1.1 $
* @author Philippe Le Hegaret
*/
public interface Selector {
/* simple selectors */
/**
* This is a conditional selector.
* example:
* <pre class="example">
* simple[role="private"]
* .part1
* H1#myId
* P:lang(fr).p1
* </pre>
*
* @see ConditionalSelector
*/
public static final short SAC_CONDITIONAL_SELECTOR = 0;
/**
* This selector matches any node.
* @see SimpleSelector
*/
public static final short SAC_ANY_NODE_SELECTOR = 1;
/**
* This selector matches the root node.
* @see SimpleSelector
*/
public static final short SAC_ROOT_NODE_SELECTOR = 2;
/**
* This selector matches only node that are different from a specified one.
* @see NegativeSelector
*/
public static final short SAC_NEGATIVE_SELECTOR = 3;
/**
* This selector matches only element node.
* example:
* <pre class="example">
* H1
* animate
* </pre>
* @see ElementSelector
*/
public static final short SAC_ELEMENT_NODE_SELECTOR = 4;
/**
* This selector matches only text node.
* @see CharacterDataSelector
*/
public static final short SAC_TEXT_NODE_SELECTOR = 5;
/**
* This selector matches only cdata node.
* @see CharacterDataSelector
*/
public static final short SAC_CDATA_SECTION_NODE_SELECTOR = 6;
/**
* This selector matches only processing instruction node.
* @see ProcessingInstructionSelector
*/
public static final short SAC_PROCESSING_INSTRUCTION_NODE_SELECTOR = 7;
/**
* This selector matches only comment node.
* @see CharacterDataSelector
*/
public static final short SAC_COMMENT_NODE_SELECTOR = 8;
/**
* This selector matches the 'first line' pseudo element.
* example:
* <pre class="example">
* :first-line
* </pre>
* @see ElementSelector
*/
public static final short SAC_PSEUDO_ELEMENT_SELECTOR = 9;
/* combinator selectors */
/**
* This selector matches an arbitrary descendant of some ancestor element.
* example:
* <pre class="example">
* E F
* </pre>
* @see DescendantSelector
*/
public static final short SAC_DESCENDANT_SELECTOR = 10;
/**
* This selector matches a childhood relationship between two elements.
* example:
* <pre class="example">
* E > F
* </pre>
* @see DescendantSelector
*/
public static final short SAC_CHILD_SELECTOR = 11;
/**
* This selector matches two selectors who shared the same parent in the
* document tree and the element represented by the first sequence
* immediately precedes the element represented by the second one.
* example:
* <pre class="example">
* E + F
* </pre>
* @see SiblingSelector
*/
public static final short SAC_DIRECT_ADJACENT_SELECTOR = 12;
/**
* An integer indicating the type of <code>Selector</code>
*/
public short getSelectorType();
}