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

## org.ka2ddo.yaac.filter
Class CumulativeBooleanAndFilter

    java.lang.Object
      org.ka2ddo.yaac.filter.Filter
          org.ka2ddo.yaac.filter.CumulativeBooleanAndFilter

All Implemented Interfaces:
  java.lang.Cloneable, java.lang.Iterable<Filter>, FilterChangeListener, MonitoringFilter, PersistingFilter

    public final class CumulativeBooleanAndFilter

extends Filter
implements MonitoringFilter, FilterChangeListener, java.lang.Iterable<Filter>, java.lang.Cloneable, PersistingFilter

This filter accumulates the results of several filters. Only if all the attached filters pass will the cumulative filter pass. This filter will also provide a vertical column of its contained filters if displayed in the filter dialog.

See Also:
  `Filter`, `MonitoringFilter`

Field Summary

Fields inherited from class org.ka2ddo.yaac.filter.Filter
`RESULT_NEUTRAL, RESULT_PASS, RESULT_REJECT, RESULT_WEAK_PASS, RESULT_WEAK_REJECT`

Constructor Summary
`CumulativeBooleanAndFilter()`

Method Summary
`int` | `acceptAX25Frame(AX25Frame frame)` Indicate whether the specified message should be displayed or used to determine if a station should be displayed (if recursively called from acceptStation()).
`int` | `acceptMessage(AX25Message msg)` Indicate whether the specified message should be displayed or used to determine if a station should be displayed (if recursively called from acceptStation()).
`int` | `acceptStation(StationState ss)` Indicate whether the specified station should be displayed.
`void` | `addFilter(Filter filter)` Add a sub-Filter to this CumulativeBooleanAndFilter.
`void` | `addFilterChangeListener(FilterChangeListener l)` Register a listener for changes of this Filter.
`java.lang.Object` | `clone()` Creates and returns a copy of this object.
`void` | `filterSettingsChanged(Filter changedFilter, boolean changedByUser)` Forward a filter change from a contained sub-Filter to the listeners on this Filter.
`Filter` | `getFilter(int index)` Get a reference to the Nth Filter installed in this CumulativeBooleanAndFilter.
`int` | `getFilterCount()` Get the number of sub-filters in this CumulativeBooleanAndFilter.
`java.lang.String` | `getFilterHelpTagName()` Report a tag name used to look up JavaHelp for a filter editor.
`int` | `getFilterNum()` Get sequence number for this filter instance.
`java.lang.String` | `getFilterTypeTagName()` Report a tag name used to look up the labelling for an editor panel for this editor instance in a ResourceBundle of translated names.
`java.lang.String` | `getFilterUIName()` Get the class name of a dynamically loadable class for the the GUI for this filter.
`java.util.Iterator<Filter>` | `iterator()` Returns an iterator over the child Filters of this CumulativeBooleanAndFilter.
`void` | `removeFilter(Filter filter)` Disconnect the specified Filter from this CumulativeBooleanAndFilter.
`void` | `removeFilterChangeListener(FilterChangeListener l)` Deregisters a listener.
`void` | `setFilterTypeTagName(java.lang.String tagName)` Set the tag name to be used by this particular instance of CumulativeBooleanAndFilter.
`void` | `setPrefPrefix(java.lang.String prefPrefix)` Change the persisted parameter prefix for this Filter instance.
`void` | `setToPassall()` Reset the filter to a configuration that would pass the maximum amount of messages, packets, and stations.
`void` | `startRealTimeTracking()` Start automatically collecting real-time data as YAAC learns about them.
`void` | `stopRealTimeTracking()` Stop automatically collecting new real-time data and keep the current cache stable.

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

Constructor Detail

### CumulativeBooleanAndFilter

    public CumulativeBooleanAndFilter()

Method Detail

### addFilter

    public void addFilter(Filter filter)

  Add a sub-Filter to this CumulativeBooleanAndFilter.

  Parameters:
    `filter` - Filter to be added to this filter

### removeFilter

    public void removeFilter(Filter filter)

  Disconnect the specified Filter from this CumulativeBooleanAndFilter.

  Parameters:
    `filter` - Filter to remove; if not found, nothing happens

### getFilterCount

    public int getFilterCount()

  Get the number of sub-filters in this CumulativeBooleanAndFilter.

  Returns:
    int filter count

### getFilter

    public Filter getFilter(int index)
                     throws java.lang.IndexOutOfBoundsException

  Get a reference to the Nth Filter installed in this CumulativeBooleanAndFilter.

  Parameters:
    `index` - zero-based index into this containing Filter
  Returns:
    return the Nth Filter instance
  Throws:
    `java.lang.IndexOutOfBoundsException` - if the index is out of range

### iterator

    public java.util.Iterator<Filter> iterator()

  Returns an iterator over the child Filters of this CumulativeBooleanAndFilter.

  Specified by:
    `iterator` in interface `java.lang.Iterable<Filter>`
  Returns:
    an Iterator.

### getFilterTypeTagName

    public java.lang.String getFilterTypeTagName()

  Report a tag name used to look up the labelling for an editor panel for this editor instance in a ResourceBundle of translated names.

  Specified by:
    `getFilterTypeTagName` in class `Filter`
  Returns:
    String to use in looking up form label for this filter's editor

### getFilterHelpTagName

    public java.lang.String getFilterHelpTagName()

  Report a tag name used to look up JavaHelp for a filter editor.

  Specified by:
    `getFilterHelpTagName` in class `Filter`
  Returns:
    the first sub-filter's help tag that is not null, or null because there is no filter specific help on any of the sub-filters

### setFilterTypeTagName

    public void setFilterTypeTagName(java.lang.String tagName)

  Set the tag name to be used by this particular instance of CumulativeBooleanAndFilter.

  Parameters:
    `tagName` - String tag name to return
  See Also:
    `getFilterTypeTagName()`

### getFilterUIName

    public java.lang.String getFilterUIName()

  Get the class name of a dynamically loadable class for the the GUI for this filter. The name is allowed to have a wildcard '*' in it where a GUI type ("gui" for standard Java or "android" for Android) can be substituted.

  Specified by:
    `getFilterUIName` in class `Filter`
  Returns:
    String name of GUI class for this filter

### setPrefPrefix

    public void setPrefPrefix(java.lang.String prefPrefix)

  Change the persisted parameter prefix for this Filter instance. CumulativeBooleanAndFilters don't persist anything themselves, but they pass the change down to their child Filters.

  Specified by:
    `setPrefPrefix` in interface `PersistingFilter`
  Parameters:
    `prefPrefix` - prefix String (can be empty string "") or null to indicate this filter should not be persisted

### getFilterNum

    public int getFilterNum()

  Get sequence number for this filter instance.

  Returns:
    the number assigned to this filter instance

### acceptAX25Frame

    public int acceptAX25Frame(AX25Frame frame)

  Indicate whether the specified message should be displayed or used to determine if a station should be displayed (if recursively called from acceptStation()).

  Specified by:
    `acceptAX25Frame` in class `Filter`
  Parameters:
    `frame` - the timestamped AX25 frame record to analyze
  Returns:
    RESULT_xxx constant indicating if message information should be displayed

### acceptMessage

    public int acceptMessage(AX25Message msg)

  Indicate whether the specified message should be displayed or used to determine if a station should be displayed (if recursively called from acceptStation()).

  Specified by:
    `acceptMessage` in class `Filter`
  Parameters:
    `msg` - the APRS Message record to analyze
  Returns:
    Result indicating if message information should be displayed

### acceptStation

    public int acceptStation(StationState ss)

  Indicate whether the specified station should be displayed. The acceptMessage() and acceptAX25Frame() methods may be called to assist in the determination.

  Specified by:
    `acceptStation` in class `Filter`
  Parameters:
    `ss` - StationState record to analyze
  Returns:
    RESULT_xxx constant indicating if station information should be displayed

### addFilterChangeListener

    public void addFilterChangeListener(FilterChangeListener l)

  Register a listener for changes of this Filter.

  Specified by:
    `addFilterChangeListener` in class `Filter`
  Parameters:
    `l` - FilterChangeListener to register

### removeFilterChangeListener

    public void removeFilterChangeListener(FilterChangeListener l)

  Deregisters a listener. The listener will no longer be informed of changes to this filter.

  Specified by:
    `removeFilterChangeListener` in class `Filter`
  Parameters:
    `l` - FilterChangeListener to deregister

### setToPassall

    public void setToPassall()

  Reset the filter to a configuration that would pass the maximum amount of messages, packets, and stations.

  Specified by:
    `setToPassall` in class `Filter`

### filterSettingsChanged

    public void filterSettingsChanged(Filter changedFilter,
                                      boolean changedByUser)

  Forward a filter change from a contained sub-Filter to the listeners on this Filter.

  Specified by:
    `filterSettingsChanged` in interface `FilterChangeListener`
  Parameters:
    `changedFilter` - the sub-Filter originally reporting the filter change
    `changedByUser` - boolean true if change was manually made by user, false if change was made automatically by dynamic filter logic

### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

  Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object `x`, the expression:

  >      x.clone() != x

  will be true, and that the expression:

  >      x.clone().getClass() == x.getClass()

  will be `true`, but these are not absolute requirements. While it is typically the case that:

  >      x.clone().equals(x)

  will be `true`, this is not an absolute requirement. By convention, the returned object should be obtained by calling `super.clone`. If a class and all of its superclasses (except `Object`) obey this convention, it will be the case that `x.clone().getClass() == x.getClass()`. By convention, the object returned by this method should be independent of this object (which is being cloned). To achieve this independence, it may be necessary to modify one or more fields of the object returned by `super.clone` before returning it. Typically, this means copying any mutable objects that comprise the internal "deep structure" of the object being cloned and replacing the references to these objects with references to the copies. If a class contains only primitive fields or references to immutable objects, then it is usually the case that no fields in the object returned by `super.clone` need to be modified.

  Overrides:
    `clone` in class `Filter`
  Returns:
    a clone of this instance.
  Throws:
    `java.lang.CloneNotSupportedException` - if the object's class does not support the `Cloneable` interface. Subclasses that override the `clone` method can also throw this exception to indicate that an instance cannot be cloned.
  See Also:
    `Cloneable`

### startRealTimeTracking

    public void startRealTimeTracking()

  Start automatically collecting real-time data as YAAC learns about them. Note that CumulativeBooleanAndFilter itself does not collect data, but it handles recursion to child filters that do.

  Specified by:
    `startRealTimeTracking` in interface `MonitoringFilter`

### stopRealTimeTracking

    public void stopRealTimeTracking()

  Stop automatically collecting new real-time data and keep the current cache stable. Note that CumulativeBooleanAndFilter itself does not collect data, but it handles recursion to child filters that do.

  Specified by:
    `stopRealTimeTracking` in interface `MonitoringFilter`

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