org.geotools.styling
Interface Rule

All Superinterfaces:
GTComponent
All Known Implementing Classes:
RuleImpl

public interface Rule
extends GTComponent

A rule is used to attach a condition to, and group, the individual symbolizers used for rendering. The Title and Abstract describe the rule and may be used to generate a legend, as may the LegendGraphic. The Filter, ElseFilter, MinScale and MaxScale elements allow the selection of features and rendering scales for a rule. The scale selection works as follows. When a map is to be rendered, the scale denominator is computed and all rules in all UserStyles that have a scale outside of the request range are dropped. (This also includes Rules that have an ElseFilter.) An ElseFilter is simply an ELSE condition to the conditions (Filters) of all other rules in the same UserStyle. The exact meaning of the ElseFilter is determined after Rules have been eliminated for not fitting the rendering scale. This definition of the behaviour of ElseFilters may seem a little strange, but it allows for scale-dependent and scale-independent ELSE conditions. For the Filter, only SqlExpression is available for specification, but this is a hack and should be replaced with Filter as defined in WFS. A missing Filter element means "always true". If a set of Rules has no ElseFilters, then some features may not be rendered (which is presumably the desired behavior). The Scales are actually scale denominators (as double floats), so "10e6" would be interpreted as 1:10M. A missing MinScale means there is no lower bound to the scale-denominator range (lim[x->0+](x)), and a missing MaxScale means there is no upper bound (infinity). 0.28mm

The details of this object are taken from the OGC Styled-Layer Descriptor Report (OGC 02-070) version 1.0.0.:


 <xsd:element name="Rule">
   <xsd:annotation>
     <xsd:documentation>
       A Rule is used to attach property/scale conditions to and group
       the individual symbolizers used for rendering.
     </xsd:documentation>
   </xsd:annotation>
   <xsd:complexType>
     <xsd:sequence>
       <xsd:element ref="sld:Name" minOccurs="0"/>
       <xsd:element ref="sld:Title" minOccurs="0"/>
       <xsd:element ref="sld:Abstract" minOccurs="0"/>
       <xsd:element ref="sld:LegendGraphic" minOccurs="0"/>
       <xsd:choice minOccurs="0">
         <xsd:element ref="ogc:Filter"/>
         <xsd:element ref="sld:ElseFilter"/>
       </xsd:choice>
       <xsd:element ref="sld:MinScaleDenominator" minOccurs="0"/>
       <xsd:element ref="sld:MaxScaleDenominator" minOccurs="0"/>
       <xsd:element ref="sld:Symbolizer" maxOccurs="unbounded"/>
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>
 


Method Summary
 void accept(StyleVisitor visitor)
           
 java.lang.String getAbstract()
          Gets the abstract text for the rule.
 Filter getFilter()
           
 Graphic[] getLegendGraphic()
          A set of equivalent Graphics in different formats which can be used as a legend against features stylized by the symbolizers in this rule.
 double getMaxScaleDenominator()
          The largest value for scale denominator at which symbolizers contained by this rule should be applied.
 double getMinScaleDenominator()
          The smallest value for scale denominator at which symbolizers contained by this rule should be applied.
 java.lang.String getName()
          Gets the name of the rule.
 Symbolizer[] getSymbolizers()
          The symbolizers contain the actual styling information for different geometry types.
 java.lang.String getTitle()
          Gets the title.
 boolean hasElseFilter()
           
 void setAbstract(java.lang.String abstractStr)
          Sets the abstract text for the rule.
 void setFilter(Filter filter)
           
 void setIsElseFilter(boolean defaultb)
           
 void setLegendGraphic(Graphic[] graphics)
          A set of equivalent Graphics in different formats which can be used as a legend against features stylized by the symbolizers in this rule.
 void setMaxScaleDenominator(double scale)
          The largest value for scale denominator at which symbolizers contained by this rule should be applied.
 void setMinScaleDenominator(double scale)
          The smallest value for scale denominator at which symbolizers contained by this rule should be applied.
 void setName(java.lang.String name)
          Sets the name of the rule.
 void setSymbolizers(Symbolizer[] symbolizers)
          The symbolizers contain the actual styling information for different geometry types.
 void setTitle(java.lang.String title)
          Sets the title.
 
Methods inherited from interface org.geotools.event.GTComponent
changed, getNote, getParent, removed, setNote
 

Method Detail

getName

public java.lang.String getName()
Gets the name of the rule.

Returns:
The name of the rule. This provides a way to identify a rule.

setName

public void setName(java.lang.String name)
Sets the name of the rule.

Parameters:
name - The name of the rule. This provides a way to identify a rule.

getTitle

public java.lang.String getTitle()
Gets the title.

Returns:
The title of the rule. This is a brief, human readable, description of the rule.

setTitle

public void setTitle(java.lang.String title)
Sets the title.

Parameters:
title - The title of the rule. This is a brief, human readable, description of the rule.

getAbstract

public java.lang.String getAbstract()
Gets the abstract text for the rule.

Returns:
The abstract text, a more detailed description of the rule.

setAbstract

public void setAbstract(java.lang.String abstractStr)
Sets the abstract text for the rule.

Parameters:
abstractStr - The abstract text, a more detailed description of the rule.

getMinScaleDenominator

public double getMinScaleDenominator()
The smallest value for scale denominator at which symbolizers contained by this rule should be applied.

Returns:
The smallest (inclusive) denominator value that this rule will be active for.

setMinScaleDenominator

public void setMinScaleDenominator(double scale)
The smallest value for scale denominator at which symbolizers contained by this rule should be applied.

Parameters:
scale - The smallest (inclusive) denominator value that this rule will be active for.

getMaxScaleDenominator

public double getMaxScaleDenominator()
The largest value for scale denominator at which symbolizers contained by this rule should be applied.

Returns:
The largest (exclusive) denominator value that this rule will be active for.

setMaxScaleDenominator

public void setMaxScaleDenominator(double scale)
The largest value for scale denominator at which symbolizers contained by this rule should be applied.

Parameters:
scale - The largest (exclusive) denominator value that this rule will be active for.

getFilter

public Filter getFilter()

setFilter

public void setFilter(Filter filter)

hasElseFilter

public boolean hasElseFilter()

setIsElseFilter

public void setIsElseFilter(boolean defaultb)

getLegendGraphic

public Graphic[] getLegendGraphic()
A set of equivalent Graphics in different formats which can be used as a legend against features stylized by the symbolizers in this rule.

Returns:
An array of Graphic objects, any of which can be used as the legend.

setLegendGraphic

public void setLegendGraphic(Graphic[] graphics)
A set of equivalent Graphics in different formats which can be used as a legend against features stylized by the symbolizers in this rule.

Parameters:
graphics - An array of Graphic objects, any of which can be used as the legend.

getSymbolizers

public Symbolizer[] getSymbolizers()
The symbolizers contain the actual styling information for different geometry types. A single feature may be rendered by more than one of the symbolizers returned by this method. It is important that the symbolizers be applied in the order in which they are returned if the end result is to be as intended. All symbolizers should be applied to all features which make it through the filters in this rule regardless of the features' geometry. For example, a polygon symbolizer should be applied to line geometries and even points. If this is not the desired beaviour, ensure that either the filters block inappropriate features or that the FeatureTypeStyler which contains this rule has its FeatureTypeName or SemanticTypeIdentifier set appropriately.

Returns:
An array of symbolizers to be applied, in sequence, to all of the features addressed by the FeatureTypeStyler which contains this rule.

setSymbolizers

public void setSymbolizers(Symbolizer[] symbolizers)
The symbolizers contain the actual styling information for different geometry types. A single feature may be rendered by more than one of the symbolizers returned by this method. It is important that the symbolizers be applied in the order in which they are returned if the end result is to be as intended. All symbolizers should be applied to all features which make it through the filters in this rule regardless of the features' geometry. For example, a polygon symbolizer should be applied to line geometries and even points. If this is not the desired beaviour, ensure that either the filters block inappropriate features or that the FeatureTypeStyler which contains this rule has its FeatureTypeName or SemanticTypeIdentifier set appropriately.

Parameters:
symbolizers - An array of symbolizers to be applied, in sequence, to all of the features addressed by the FeatureTypeStyler which contains this rule.

accept

public void accept(StyleVisitor visitor)


Copyright © GeoTools. All Rights Reserved.