/* * 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 477010 2006-11-20 02:54:38Z mrglavas $ */ 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. * * @author Philippe Le Hegaret * @version $Revision: 477010 $ */ 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>. * * @return the selector type */ public short getSelectorType(); }