Package com.openhtmltopdf.css.newmatch
Class CascadedStyle
java.lang.Object
com.openhtmltopdf.css.newmatch.CascadedStyle
public class CascadedStyle extends Object
Holds a set of
PropertyDeclarations 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 matching Rulesets to Document Elements via their selectors. You
can get individual properties by using propertyByName(CSSName) or an
Iterator of properties with getCascadedPropertyDeclarations(). Check for individual property assignments
using hasProperty(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 Details
-
emptyCascadedStyle
Get an empty singleton, used to negate inheritance of properties
-
-
Method Details
-
createLayoutStyle
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
-
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
Creates aCascadedStyle, setting the display property to to the value of thedisplayparameter. -
hasProperty
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
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
Gets the ident attribute of the CascadedStyle object- Parameters:
cssName- PARAM- Returns:
- The ident value
-
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
-