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 */ 069 public String getCssText(); 070 /** 071 * The parsable textual representation of the rule. This reflects the 072 * current state of the rule and not its initial value. 073 * @exception DOMException 074 * SYNTAX_ERR: Raised if the specified CSS string value has a syntax 075 * error and is unparsable. 076 * <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string 077 * value represents a different type of rule than the current one. 078 * <br>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at 079 * this point in the style sheet. 080 * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly. 081 */ 082 public void setCssText(String cssText) 083 throws DOMException; 084 085 /** 086 * The style sheet that contains this rule. 087 */ 088 public CSSStyleSheet getParentStyleSheet(); 089 090 /** 091 * If this rule is contained inside another rule (e.g. a style rule 092 * inside an @media block), this is the containing rule. If this rule is 093 * not nested inside any other rules, this returns <code>null</code>. 094 */ 095 public CSSRule getParentRule(); 096 097 }