001: /*
002: * Copyright (c) 2000 World Wide Web Consortium,
003: * (Massachusetts Institute of Technology, Institut National de
004: * Recherche en Informatique et en Automatique, Keio University). All
005: * Rights Reserved. This program is distributed under the W3C's Software
006: * Intellectual Property License. This program is distributed in the
007: * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
008: * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
009: * PURPOSE.
010: * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
011: */
012:
013: package org.w3c.dom.css;
014:
015: import org.w3c.dom.DOMException;
016:
017: /**
018: * The <code>CSSRule</code> interface is the abstract base interface for any
019: * type of CSS statement. This includes both rule sets and at-rules. An
020: * implementation is expected to preserve all rules specified in a CSS style
021: * sheet, even if the rule is not recognized by the parser. Unrecognized
022: * rules are represented using the <code>CSSUnknownRule</code> interface.
023: * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
024: * @since DOM Level 2
025: */
026: public interface CSSRule {
027: // RuleType
028: /**
029: * The rule is a <code>CSSUnknownRule</code>.
030: */
031: public static final short UNKNOWN_RULE = 0;
032: /**
033: * The rule is a <code>CSSStyleRule</code>.
034: */
035: public static final short STYLE_RULE = 1;
036: /**
037: * The rule is a <code>CSSCharsetRule</code>.
038: */
039: public static final short CHARSET_RULE = 2;
040: /**
041: * The rule is a <code>CSSImportRule</code>.
042: */
043: public static final short IMPORT_RULE = 3;
044: /**
045: * The rule is a <code>CSSMediaRule</code>.
046: */
047: public static final short MEDIA_RULE = 4;
048: /**
049: * The rule is a <code>CSSFontFaceRule</code>.
050: */
051: public static final short FONT_FACE_RULE = 5;
052: /**
053: * The rule is a <code>CSSPageRule</code>.
054: */
055: public static final short PAGE_RULE = 6;
056:
057: /**
058: * The type of the rule, as defined above. The expectation is that
059: * binding-specific casting methods can be used to cast down from an
060: * instance of the <code>CSSRule</code> interface to the specific
061: * derived interface implied by the <code>type</code>.
062: */
063: public short getType();
064:
065: /**
066: * The parsable textual representation of the rule. This reflects the
067: * current state of the rule and not its initial value.
068: * @exception DOMException
069: * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
070: * error and is unparsable.
071: * <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
072: * value represents a different type of rule than the current one.
073: * <br>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
074: * this point in the style sheet.
075: * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly.
076: */
077: public String getCssText();
078:
079: /**
080: * The parsable textual representation of the rule. This reflects the
081: * current state of the rule and not its initial value.
082: * @exception DOMException
083: * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
084: * error and is unparsable.
085: * <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
086: * value represents a different type of rule than the current one.
087: * <br>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
088: * this point in the style sheet.
089: * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly.
090: */
091: public void setCssText(String cssText) throws DOMException;
092:
093: /**
094: * The style sheet that contains this rule.
095: */
096: public CSSStyleSheet getParentStyleSheet();
097:
098: /**
099: * If this rule is contained inside another rule (e.g. a style rule
100: * inside an @media block), this is the containing rule. If this rule is
101: * not nested inside any other rules, this returns <code>null</code>.
102: */
103: public CSSRule getParentRule();
104:
105: }
|