Package com.openhtmltopdf.css.newmatch
Class CascadedStyle
- java.lang.Object
-
- com.openhtmltopdf.css.newmatch.CascadedStyle
-
public class CascadedStyle extends Object
Holds a set ofPropertyDeclarations for each unique CSS property name. What properties belong in the set is not determined, except that multiple entries are resolved into a single set using cascading rules. The set is cascaded during instantiation, so once you have a CascadedStyle, the PropertyDeclarations you retrieve from it will have been resolved following the CSS cascading rules. Note that this class knows nothing about CSS selector-matching rules. Before creating a CascadedStyle, you will need to determine which PropertyDeclarations belong in the set--for example, by matchingRulesets toDocumentElements via their selectors. You can get individual properties by usingpropertyByName(CSSName)or anIteratorof properties withgetCascadedPropertyDeclarations(). Check for individual property assignments usinghasProperty(CSSName). A CascadedStyle is immutable, as properties can not be added or removed from it once instantiated.- Author:
- Torbjoern Gannholm, Patrick Wright
-
-
Field Summary
Fields Modifier and Type Field Description static CascadedStyleemptyCascadedStyleGet an empty singleton, used to negate inheritance of properties
-
Method Summary
Modifier and Type Method Description intcountAssigned()static CascadedStylecreateAnonymousStyle(IdentValue display)Creates aCascadedStyle, setting the display property to to the value of thedisplayparameter.static PropertyDeclarationcreateLayoutPropertyDeclaration(CSSName cssName, IdentValue display)Creates aPropertyDeclarationsuitable for passing tocreateLayoutStyle(PropertyDeclaration[])orcreateLayoutStyle(CascadedStyle, PropertyDeclaration[])static CascadedStylecreateLayoutStyle(CascadedStyle startingPoint, PropertyDeclaration[] decls)Creates aCascadedStyleusing style information fromstartingPointand then adding the property declarations fromdecls.static CascadedStylecreateLayoutStyle(PropertyDeclaration[] decls)Creates aCascadedStyleusing the provided property declarations.static CascadedStylecreateLayoutStyle(List<PropertyDeclaration> decls)Collection<PropertyDeclaration>getCascadedPropertyDeclarations()Returns anIteratorover the set ofPropertyDeclarations already matched in this CascadedStyle.StringgetFingerprint()IdentValuegetIdent(CSSName cssName)Gets the ident attribute of the CascadedStyle objectbooleanhasProperty(CSSName cssName)Returns true if property has been defined in this style.PropertyDeclarationpropertyByName(CSSName cssName)Returns aPropertyDeclarationby CSS property name, e.g.
-
-
-
Field Detail
-
emptyCascadedStyle
public static final CascadedStyle emptyCascadedStyle
Get an empty singleton, used to negate inheritance of properties
-
-
Method Detail
-
createLayoutStyle
public static CascadedStyle createLayoutStyle(PropertyDeclaration[] decls)
Creates aCascadedStyleusing the provided property declarations. It is used when a box requires a style that does not correspond to anything in the parsed stylesheets.- Parameters:
decls- An array of PropertyDeclaration objects created withcreateLayoutPropertyDeclaration(CSSName, IdentValue)- See Also:
createLayoutPropertyDeclaration(CSSName, IdentValue)
-
createLayoutStyle
public static CascadedStyle createLayoutStyle(List<PropertyDeclaration> decls)
-
createLayoutStyle
public static CascadedStyle createLayoutStyle(CascadedStyle startingPoint, PropertyDeclaration[] decls)
Creates aCascadedStyleusing style information fromstartingPointand then adding the property declarations fromdecls.- Parameters:
decls- An array of PropertyDeclaration objects created withcreateLayoutPropertyDeclaration(CSSName, IdentValue)- See Also:
createLayoutPropertyDeclaration(CSSName, IdentValue)
-
createLayoutPropertyDeclaration
public static PropertyDeclaration createLayoutPropertyDeclaration(CSSName cssName, IdentValue display)
Creates aPropertyDeclarationsuitable for passing tocreateLayoutStyle(PropertyDeclaration[])orcreateLayoutStyle(CascadedStyle, PropertyDeclaration[])
-
createAnonymousStyle
public static CascadedStyle createAnonymousStyle(IdentValue display)
Creates aCascadedStyle, setting the display property to to the value of thedisplayparameter.
-
hasProperty
public boolean hasProperty(CSSName cssName)
Returns true if property has been defined in this style.- Parameters:
cssName- The CSS property name, e.g. "font-family".- Returns:
- True if the property is defined in this set.
-
propertyByName
public PropertyDeclaration propertyByName(CSSName cssName)
Returns aPropertyDeclarationby CSS property name, e.g. "font-family". Properties are already cascaded during instantiation, so this will return the actual property (and corresponding value) to use for CSS-based layout and rendering.- Parameters:
cssName- The CSS property name, e.g. "font-family".- Returns:
- The PropertyDeclaration, if declared in this set, or null if not found.
-
getIdent
public IdentValue getIdent(CSSName cssName)
Gets the ident attribute of the CascadedStyle object- Parameters:
cssName- PARAM- Returns:
- The ident value
-
getCascadedPropertyDeclarations
public Collection<PropertyDeclaration> getCascadedPropertyDeclarations()
Returns anIteratorover the set ofPropertyDeclarations already matched in this CascadedStyle. For a given property name, there may be no match, in which case there will be noPropertyDeclarationfor that property name in the Iterator.- Returns:
- Iterator over a set of properly cascaded PropertyDeclarations.
-
countAssigned
public int countAssigned()
-
getFingerprint
public String getFingerprint()
-
-