RuleHandler (OpenMap API)
Date: 2016-12-09

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.bbn.openmap.omGraphics.rule
Class RuleHandler<T>

    java.lang.Object
      com.bbn.openmap.MapHandlerChild
          com.bbn.openmap.OMComponent
              com.bbn.openmap.omGraphics.rule.RuleHandler<T>

All Implemented Interfaces:
  LightMapHandlerChild, PropertyConsumer, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.util.EventListener

Direct Known Subclasses:
  DbfHandler

    public abstract class RuleHandler<T>

extends OMComponent

The RuleHandler manages a set of Rules and will evaluate OMGraphics against them for a current projection.

For List rules, something like this:

     # Rule marker names specified in space-separated list
     neroads.rules=rule0 rule1
     # global scale settings can be used so work is only performed within scale range of minScale/maxScale
     neroads.maxScale=1000000f

     # rule0 definition:
     # CLASS_RTE is a DBF column name
     neroads.rule0.key=CLASS_RTE
     # operation, if key value is less than 2
     neroads.rule0.op=lt
     neroads.rule0.val=2
     # If rule is met, then actions can be performed:
     # Column names can be added together in a label by specifying them in a space-separated list
     neroads.rule0.label=PREFIX PRETYPE NAME TYPE SUFFIX
     # Labels can have scale limits imposed, so they don't appear if map scale is
     # greater than maxScale or less than minScale
     neroads.rule0.label.maxScale=1000000
     # Visibility can be controlled with respect to scale as well
     neroads.rule0.render.maxScale=1000000
     # Rendering attributes can be specified.
     neroads.rule0.lineColor=FFFA73
     neroads.rule0.lineWidth=4
     neroads.rule0.mattingColor=55AAAAAA

     # rule1 definition:
     neroads.rule1.key=CLASS_RTE
     neroads.rule1.op=all
     neroads.rule1.label=PREFIX PRETYPE NAME TYPE SUFFIX
     neroads.rule1.label.maxScale=200000
     neroads.rule1.render.maxScale=500000
     neroads.rule1.lineColor=FFFFFF
     neroads.rule1.lineWidth=3
     neroads.rule1.mattingColor=55AAAAAA

     # The render attribute is assumed to be true.  You can hide OMGraphics by setting it to false.

Author:
  dietrick

Field Summary
`protected java.lang.String` | `lastLabel` Used to help prevent consecutive repeat label values.

Fields inherited from class com.bbn.openmap.OMComponent
`i18n, propertyPrefix`

Fields inherited from class com.bbn.openmap.MapHandlerChild
`beanContextChildSupport, isolated`

Fields inherited from interface com.bbn.openmap.PropertyConsumer
`EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty`

Constructor Summary
`RuleHandler()`

Method Summary
`void` | `addRule(Rule rule)`
`void` | `clearRules()`
`abstract Rule` | `createRule()` Create a Rule object that knows how to interpret properties to create the proper indices into the record List.
`OMGraphic` | `evaluate(OMGraphic omg, OMGraphicList labelList, Projection proj)` This is the main call that a layer would use to modify/update an OMGraphic based on dbf file contents.
`java.util.Properties` | `getProperties(java.util.Properties props)` PropertyConsumer method, to fill in a Properties object, reflecting the current values of the OMComponent.
`abstract T` | `getRecordDataForOMGraphic(OMGraphic omg)` Return a record Map for a particular OMGraphic, like a properties table.
`java.util.List<Rule>` | `getRules()`
`boolean` | `removeRule(Rule rule)`
`void` | `setProperties(java.lang.String prefix, java.util.Properties props)` Sets the properties for the OMComponent.
`void` | `setRules(java.util.List<Rule> rules)`

Methods inherited from class com.bbn.openmap.OMComponent
`getPropertyInfo, getPropertyPrefix, setProperties, setPropertyPrefix`

Methods inherited from class com.bbn.openmap.MapHandlerChild
`addPropertyChangeListener, addVetoableChangeListener, childrenAdded, childrenRemoved, findAndInit, findAndInit, findAndUndo, firePropertyChange, fireVetoableChange, getBeanContext, isIsolated, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext, setIsolated`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### lastLabel

    protected java.lang.String lastLabel

  Used to help prevent consecutive repeat label values.

Constructor Detail

### RuleHandler

    public RuleHandler()

Method Detail

### createRule

    public abstract Rule createRule()

  Create a Rule object that knows how to interpret properties to create the proper indices into the record List.

### getRecordDataForOMGraphic

    public abstract T getRecordDataForOMGraphic(OMGraphic omg)

  Return a record Map for a particular OMGraphic, like a properties table.

  Parameters:
    `omg` - OMGraphic being queried
  Returns:
    Map of objects as attributes for the OMGraphic.

### setProperties

    public void setProperties(java.lang.String prefix,
                              java.util.Properties props)

  Description copied from class: `OMComponent`
  Sets the properties for the OMComponent.

  Specified by:
    `setProperties` in interface `PropertyConsumer`
  Overrides:
    `setProperties` in class `OMComponent`
  Parameters:
    `prefix` - the token to prefix the property names
    `props` - the `Properties` object

### getProperties

    public java.util.Properties getProperties(java.util.Properties props)

  Description copied from class: `OMComponent`
  PropertyConsumer method, to fill in a Properties object, reflecting the current values of the OMComponent. If the component has a propertyPrefix set, the property keys should have that prefix plus a separating '.' prepended to each property key it uses for configuration.

  Specified by:
    `getProperties` in interface `PropertyConsumer`
  Overrides:
    `getProperties` in class `OMComponent`
  Parameters:
    `props` - a Properties object to load the PropertyConsumer properties into. If props equals null, then a new Properties object should be created.
  Returns:
    Properties object containing PropertyConsumer property values. If getList was not null, this should equal getList. Otherwise, it should be the Properties object created by the PropertyConsumer.

### setRules

    public void setRules(java.util.List<Rule> rules)

### addRule

    public void addRule(Rule rule)

### removeRule

    public boolean removeRule(Rule rule)

### clearRules

    public void clearRules()

### getRules

    public java.util.List<Rule> getRules()

### evaluate

    public OMGraphic evaluate(OMGraphic omg,
                              OMGraphicList labelList,
                              Projection proj)

  This is the main call that a layer would use to modify/update an OMGraphic based on dbf file contents. Tries to retrieve the index from the attributes of the OMGraphic, and then checks the index and OMGraphic to see how/if it should be rendered, as determined by the rules.

  Parameters:
    `omg` - the OMGraphic in question
    `labelList` - an OMGraphicList to add the label to, so it gets rendered on top.
    `proj` - the current map projection, for scale appropriateness determinations.
  Returns:
    OMGraphic if it should be displayed, null if it shouldn't.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details