org.ka2ddo.yaac.filter
Class DestinationFilter

java.lang.Object
  extended by org.ka2ddo.yaac.filter.Filter
      extended by org.ka2ddo.yaac.filter.DestinationFilter
All Implemented Interfaces:
java.lang.Cloneable, DestinationListener, MonitoringFilter

public class DestinationFilter
extends Filter
implements MonitoringFilter, DestinationListener, java.lang.Cloneable

This filter selects messages based on their destination AX.25 address. This is used to support altnets.


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
DestinationFilter()
          Create a new instance of DestinationFilter.
 
Method Summary
 int acceptAX25Frame(AX25Frame ax25Frame)
          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.
 int acceptStation(StationState ss)
          Indicate whether the specified station should be displayed.
 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 destinationAdded(java.lang.String destination, int index)
          Inform listener that a new destination (tocall) has been registered.
 void destinationUsedAgain(java.lang.String destination)
          Inform listener that an already-known destination (tocall) has updated its statistics count.
 void fireFilterChange(boolean changedByUser)
          Tell all registered FilterChangeListeners that this DestinationFilter has changed.
 java.util.ArrayList<StationTracker.DestinationStatistics> getDestinationCache()
          Get a copy of the indexed list of known destinations.
 java.lang.String getFilterHelpTagName()
          Report a tag name used to look up JavaHelp for a filter editor.
 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.
 boolean isAcceptAllDests()
          Report whether all destinations are accepted by this filter.
 boolean isWillAcceptMicE()
          Report if Mic-E destinations (encoded latitude, etc.) should be accepted.
 void removeFilterChangeListener(FilterChangeListener l)
          Deregisters a listener.
 void setAcceptAllDests(boolean acceptAllDests)
          Specify whether all destinations are accepted by this filter.
 void setToPassall()
          Reset the filter to a configuration that would pass the maximum amount of messages, packets, and stations.
 void setWillAcceptMicE(boolean willAcceptMicE)
          Specify if Mic-E destinations (encoded latitude, etc.) should be accepted.
 void startRealTimeTracking()
          Start automatically collecting destination callsigns as YAAC learns about them.
 void stopRealTimeTracking()
          Stop automatically collecting new destination callsigns 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

DestinationFilter

public DestinationFilter()
Create a new instance of DestinationFilter.

Method Detail

startRealTimeTracking

public void startRealTimeTracking()
Start automatically collecting destination callsigns as YAAC learns about them.

Specified by:
startRealTimeTracking in interface MonitoringFilter

stopRealTimeTracking

public void stopRealTimeTracking()
Stop automatically collecting new destination callsigns and keep the current cache stable.

Specified by:
stopRealTimeTracking in interface MonitoringFilter

isAcceptAllDests

public boolean isAcceptAllDests()
Report whether all destinations are accepted by this filter.

Returns:
boolean true if this filter always accepts everything

setAcceptAllDests

public void setAcceptAllDests(boolean acceptAllDests)
Specify whether all destinations are accepted by this filter.

Parameters:
acceptAllDests - boolean true if this filter always accepts everything

isWillAcceptMicE

public boolean isWillAcceptMicE()
Report if Mic-E destinations (encoded latitude, etc.) should be accepted.

Returns:
boolean true if this filter accepts MicE messages

setWillAcceptMicE

public void setWillAcceptMicE(boolean willAcceptMicE)
Specify if Mic-E destinations (encoded latitude, etc.) should be accepted.

Parameters:
willAcceptMicE - boolean true if this filter accepts MicE messages

getDestinationCache

public java.util.ArrayList<StationTracker.DestinationStatistics> getDestinationCache()
Get a copy of the indexed list of known destinations.

Returns:
reference to the destination cache

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:
String name (as defined in HelpMap.jhm) for this filter's online help

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

acceptAX25Frame

public int acceptAX25Frame(AX25Frame ax25Frame)
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:
ax25Frame - 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.

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

acceptStation

public int acceptStation(StationState ss)
Indicate whether the specified station should be displayed.

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

fireFilterChange

public void fireFilterChange(boolean changedByUser)
Tell all registered FilterChangeListeners that this DestinationFilter has changed.

Parameters:
changedByUser - boolean true if change was manually initiated by the user, false if from automatic data collection

destinationAdded

public void destinationAdded(java.lang.String destination,
                             int index)
Inform listener that a new destination (tocall) has been registered.

Specified by:
destinationAdded in interface DestinationListener
Parameters:
destination - String callsign or tocall of the AX.25 destination (or original destination if Tx I-gated)
index - zero-based index of new entry in the list of destinations

destinationUsedAgain

public void destinationUsedAgain(java.lang.String destination)
Inform listener that an already-known destination (tocall) has updated its statistics count.

Specified by:
destinationUsedAgain in interface DestinationListener
Parameters:
destination - String callsign or tocall of the AX.25 destination (or original destination if Tx I-gated)

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Creates and returns a copy of this object.

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