org.deegree_impl.graphics.sld
Class Rule_Impl

java.lang.Object
  extended byorg.deegree_impl.graphics.sld.Rule_Impl
All Implemented Interfaces:
Marshallable, Rule

public class Rule_Impl
extends java.lang.Object
implements Rule, Marshallable

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

----------------------------------------------------------------------

Version:
$Revision: 1.6 $ $Date: 2004/02/19 10:08:56 $
Author:
Katharina Lupp

Field Summary
private  java.lang.String abstract_
           
private  boolean elseFilter
           
private  Filter filter
           
private  LegendGraphic legendGraphic
           
private  double maxScaleDenominator
           
private  double minScaleDenominator
           
private  java.lang.String name
           
private  java.util.ArrayList symbolizers
           
private  java.lang.String title
           
 
Constructor Summary
(package private) Rule_Impl()
          default constructor
(package private) Rule_Impl(Symbolizer[] symbolizers, java.lang.String name, java.lang.String title, java.lang.String abstract_, LegendGraphic legendGraphic, Filter filter, boolean elseFilter, double minScaleDenominator, double maxScaleDenominator)
          constructor initializing the class with the
 
Method Summary
 void addSymbolizer(Symbolizer symbolizer)
          adds a
 java.lang.String exportAsXML()
          exports the content of the Rule as XML formated String
 java.lang.String getAbstract()
          returns the human readable abstract of the rule
 Filter getFilter()
          The Filter element has a relatively straightforward meaning.
 LegendGraphic getLegendGraphic()
          The LegendGraphic element gives an optional explicit Graphic symbol to be displayed in a legend for this rule.
 double getMaxScaleDenominator()
          The MinScaleDenominator and MaxScaleDenominator elements of a Rule define the range of map-rendering scales for which the rule should be applied.
 double getMinScaleDenominator()
          The MinScaleDenominator and MaxScaleDenominator elements of a Rule define the range of map-rendering scales for which the rule should be applied.
 java.lang.String getName()
          returns the name of the rule. this for machine interpreting.
 Symbolizer[] getSymbolizers()
          Embedded inside of Rules, which group conditions for styling features, are Symbolizers.
 java.lang.String getTitle()
          returns the human readable title of the rule
 boolean hasElseFilter()
          The ElseFilter allows rules to be specified that are activated for features are not selected by any other rule in a feature-type style.
 void removeSymbolizer(Symbolizer symbolizer)
          Removes a from a set of Symbolizers.
 void setAbstract(java.lang.String abstract_)
          sets the human readable abstract of the rule
 void setElseFilter(boolean elseFilter)
          sets the
 void setFilter(Filter filter)
          sets the
 void setLegendGraphic(LegendGraphic legendGraphic)
          sets the LegendGraphic element
 void setMaxScaleDenominator(double maxScaleDenominator)
          sets the
 void setMinScaleDenominator(double minScaleDenominator)
          sets the
 void setName(java.lang.String name)
          sets the name of the rule. this for machine interpreting.
 void setSymbolizers(Symbolizer[] symbolizers)
          sets the
 void setTitle(java.lang.String title)
          sets the human readable title of the rule
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

symbolizers

private java.util.ArrayList symbolizers

filter

private Filter filter

legendGraphic

private LegendGraphic legendGraphic

abstract_

private java.lang.String abstract_

name

private java.lang.String name

title

private java.lang.String title

elseFilter

private boolean elseFilter

maxScaleDenominator

private double maxScaleDenominator

minScaleDenominator

private double minScaleDenominator
Constructor Detail

Rule_Impl

Rule_Impl()
default constructor


Rule_Impl

Rule_Impl(Symbolizer[] symbolizers,
          java.lang.String name,
          java.lang.String title,
          java.lang.String abstract_,
          LegendGraphic legendGraphic,
          Filter filter,
          boolean elseFilter,
          double minScaleDenominator,
          double maxScaleDenominator)
constructor initializing the class with the

Method Detail

getName

public java.lang.String getName()
returns the name of the rule. this for machine interpreting.

Specified by:
getName in interface Rule
Returns:
the name of the rule

setName

public void setName(java.lang.String name)
sets the name of the rule. this for machine interpreting.

Specified by:
setName in interface Rule
Parameters:
name - the name of the rule

getTitle

public java.lang.String getTitle()
returns the human readable title of the rule

Specified by:
getTitle in interface Rule
Returns:
the title of the rule

setTitle

public void setTitle(java.lang.String title)
sets the human readable title of the rule

Specified by:
setTitle in interface Rule
Parameters:
title - the title of the rule

getAbstract

public java.lang.String getAbstract()
returns the human readable abstract of the rule

Specified by:
getAbstract in interface Rule
Returns:
the abstract of the rule

setAbstract

public void setAbstract(java.lang.String abstract_)
sets the human readable abstract of the rule

Specified by:
setAbstract in interface Rule
Parameters:
abstract_ - the abstract of the rule

getLegendGraphic

public LegendGraphic getLegendGraphic()
The LegendGraphic element gives an optional explicit Graphic symbol to be displayed in a legend for this rule.

Specified by:
getLegendGraphic in interface Rule
Returns:
the legendGraphic of the rule

setLegendGraphic

public void setLegendGraphic(LegendGraphic legendGraphic)
sets the LegendGraphic element

Specified by:
setLegendGraphic in interface Rule
Parameters:
legendGraphic - the legendGraphic of the rule

getFilter

public Filter getFilter()
The Filter element has a relatively straightforward meaning. The syntax of the Filter element is defined in the WFS specification and allows both attribute (property) and spatial filtering.

Specified by:
getFilter in interface Rule
Returns:
the filter element

setFilter

public void setFilter(Filter filter)
sets the

Specified by:
setFilter in interface Rule
Parameters:
filter - the filter element

hasElseFilter

public boolean hasElseFilter()
The ElseFilter allows rules to be specified that are activated for features are not selected by any other rule in a feature-type style.

Specified by:
hasElseFilter in interface Rule
Returns:
true if the rule has an elseFilter

setElseFilter

public void setElseFilter(boolean elseFilter)
sets the

Specified by:
setElseFilter in interface Rule
Parameters:
elseFilter - an elseFilter

getMinScaleDenominator

public double getMinScaleDenominator()
The MinScaleDenominator and MaxScaleDenominator elements of a Rule define the range of map-rendering scales for which the rule should be applied. The MinScaleDenominator and MaxScaleDenominator elements, as their names suggest, are simply the minimum and maximum ranges of scale (denominators) of maps for which a rule should apply.

Specified by:
getMinScaleDenominator in interface Rule
Returns:
the MinScaleDenominator for the rule

setMinScaleDenominator

public void setMinScaleDenominator(double minScaleDenominator)
sets the

Specified by:
setMinScaleDenominator in interface Rule
Parameters:
minScaleDenominator - the MinScaleDenominator for the rule

getMaxScaleDenominator

public double getMaxScaleDenominator()
The MinScaleDenominator and MaxScaleDenominator elements of a Rule define the range of map-rendering scales for which the rule should be applied. The MinScaleDenominator and MaxScaleDenominator elements, as their names suggest, are simply the minimum and maximum ranges of scale (denominators) of maps for which a rule should apply.

Specified by:
getMaxScaleDenominator in interface Rule
Returns:
the MaxScaleDenominator for the rule

setMaxScaleDenominator

public void setMaxScaleDenominator(double maxScaleDenominator)
sets the

Specified by:
setMaxScaleDenominator in interface Rule
Parameters:
maxScaleDenominator - the MaxScaleDenominator for the rule

getSymbolizers

public Symbolizer[] getSymbolizers()
Embedded inside of Rules, which group conditions for styling features, are Symbolizers. A symbolizer describes how a feature is to appear on a map. The symbolizer describes not just the shape that should appear but also such graphical properties as color and opacity. A symbol is obtained by specifying one of a small number of different types of symbolizer and then supplying parameters to override its default behaviour. Currently, five types of symbolizers are defined.

The Symbolizers will be returned in the sequece of their occurence with in the rule definition. Its the users function to determine what type of Symbolizer(s) are returned. This can be done for example by using the instanceof operator of Java.

Specified by:
getSymbolizers in interface Rule
Returns:
the Symbolizer for the rule

setSymbolizers

public void setSymbolizers(Symbolizer[] symbolizers)
sets the

Specified by:
setSymbolizers in interface Rule
Parameters:
symbolizers - symbolizers for the rule

addSymbolizer

public void addSymbolizer(Symbolizer symbolizer)
adds a

Specified by:
addSymbolizer in interface Rule
Parameters:
symbolizer - symbolizer to add

removeSymbolizer

public void removeSymbolizer(Symbolizer symbolizer)
Removes a from a set of Symbolizers.

Specified by:
removeSymbolizer in interface Rule
Parameters:
symbolizer - symbolizer to remove

exportAsXML

public java.lang.String exportAsXML()
exports the content of the Rule as XML formated String

Specified by:
exportAsXML in interface Marshallable
Returns:
xml representation of the Rule