Interface Rule

All Known Implementing Classes:
RuleImpl

public interface Rule
A rule consists of two important parts: a filter and a list of symbols. When it is time to draw a given feature, the rendering engine examines each rule in the FeatureStyle, first checking its Filter (or ElseFilter). If the Filter passes, then every Symbolizer for that rule is applied to the given feature.
Since:
GeoAPI 2.2
Author:
Open Geospatial Consortium, Johann Sorel (Geomatys), Chris Dillard (SYS Technologies)
  • Method Details

    • getName

      String getName()
      Returns a name for this rule. This can be any string that uniquely identifies this rule within a given canvas. It is not meant to be human-friendly. (The "title" property is meant to be human friendly.)
      Returns:
      a name for this rule.
    • setName

      void setName(String name)
      Sets the name of the rule.
      Parameters:
      name - The name of the rule. This provides a way to identify a rule.
    • getDescription

      Description getDescription()
      Description for this rule.
      Returns:
      Human readable description for use in user interfaces
      Since:
      2.5.x
    • setFilter

      void setFilter(Filter filter)
      Filter used to select content for this rule to display.

      This filter is only consulted if isElseFilter is false.

    • setElseFilter

      void setElseFilter(boolean isElse)
      Parameters:
      isElse - if this rule should accept any features not already rendered
    • getLegend

      GraphicLegend getLegend()
    • setDescription

      void setDescription(Description description)
      Description for this rule.
      Parameters:
      description - Human readable title and abstract.
    • setMinScaleDenominator

      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.
    • setMaxScaleDenominator

      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

      Filter getFilter()
      This is the filter used to select content for this rule to display

      Returns:
      Filter use to select content for this rule to display, Filter.INCLUDES to include all content; or use Filter.EXCLUDES to mark this as an "else" Rule accepting all remaining content
    • isElseFilter

      boolean isElseFilter()
      Returns true if this Rule is to fire only if no other rules in the containing style have fired yet. If this is true, then the filter must be Filter.EXCLUDES.
      Returns:
      true if the filter is an else filter
    • getMinScaleDenominator

      double getMinScaleDenominator()
      Returns the minimum value (inclusive) in the denominator of the current map scale at which this Rule will fire. If, for example, the MinScaleDenominator were 10000, then this rule would only fire at scales of 1:X where X is greater than 10000. A value of zero indicates that there is no minimum.
      Returns:
      Min scale double value
    • getMaxScaleDenominator

      double getMaxScaleDenominator()
      Returns the maximum value (exclusive) in the denominator of the current map scale at which this Rule will fire. If, for example, the MaxScaleDenominator were 98765, then this rule would only fire at scales of 1:X where X is less than 98765. A value of Double.POSITIVE_INFINITY indicates that there is no maximum.
      Returns:
      Max scale double value
    • setLegend

      void setLegend(GraphicLegend legend)
      Parameters:
      legend -
    • getSymbolizers

      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.
    • symbolizers

      List<Symbolizer> symbolizers()
      Symbolizers used, in order, to portray the features selected by this rule.

      Please note that this list may be modified direct.

    • getOnlineResource

      OnLineResource getOnlineResource()
      Returns:
      Location where this style is defined; file or server; or null if unknown
    • accept

      Object accept(TraversingStyleVisitor visitor, Object extraData)
      calls the visit method of a StyleVisitor
      Parameters:
      visitor - the style visitor
    • setOnlineResource

      void setOnlineResource(OnLineResource resource)
      Parameters:
      resource - Indicates where this style is defined
    • hasOption

      default boolean hasOption(String key)
      Determines if a vendor option with the specific key has been set on this Rule.
    • getOptions

      default Map<String,String> getOptions()
      Map of vendor options for the Rule.

      Client code looking for the existence of a single option should use hasOption(String)

    • accept

      void accept(StyleVisitor visitor)
      Used to traverse the style data structure.