Package org.ka2ddo.yaac.filter
Class MessageContentFilter
java.lang.Object
org.ka2ddo.yaac.filter.Filter
org.ka2ddo.yaac.filter.MessageContentFilter
- All Implemented Interfaces:
Cloneable
Filter messages based on their containing (or not containing) specific elements
in their messages, or specific strings in their free-text comments.
- Author:
- Andrew Pavlin, KA2DDO
-
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
ConstructorDescriptionCreate a Filter that will select based on particular types of information in packets. -
Method Summary
Modifier and TypeMethodDescriptionint
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
Indicate whether the specified station should be displayed.void
Register a listener for changes of this Filter.boolean
Specifies that this filter may reject some stations, messages, and/or frames.clone()
Creates and returns a copy of this object.Get an Iterator through all the WeatherEnum and DataExtensionEnum values supported by this filter.Get the text fragment used for comment text matching.Get the digipeater callsign-SSID used for digipeater matching.Report a tag name used to look up JavaHelp for a filter editor.Report a tag name used to look up the labelling for an editor panel for this editor instance in a ResourceBundle of translated names.Get the class name of a dynamically loadable class for the the GUI for this filter.float
Report the current position latitude ambiguity threshold being used for ambiguity testing.boolean
Report whether the filter is looking for position more precise or less precise than the threshold.boolean
Report whether the entire MessageContentFilter is enabled to check for specific message contents.boolean
Report whether filtering is enabled for messages containing the specified message token as identified by a WeatherEnum or DataExtensionEnum.boolean
Report whether this filter will pass only packets matching the enabled filter elements, or those not matching any of the enabled filter elements.void
Deregisters a listener.void
setAmbiguityLtLimit
(boolean ambiguityLtLimit) Specify whether the filter is looking for position more precise or less precise than the threshold.void
setCommentText
(String commentText) Set the text fragment to use for free-text comment matching.void
setDigipeater
(String digipeater) Set the digipeater callsign-SSID used for digipeater matching.void
setEnabled
(boolean enabled) Specify whether the entire MessageContentFilter is enabled to check for specific message contents.void
setEnabled
(Enum e, boolean enabled) Specify whether filtering is enabled for messages containing the specified message token as identified by a WeatherEnum or DataExtensionEnum.void
setLatAmbiguity
(float fLatAmbiguity) Specify the current position latitude ambiguity threshold being used for ambiguity testing.void
setNotMatch
(boolean notMatch) Specify whether this filter will pass only packets matching the enabled filter elements, or those not matching any of the enabled filter elements.void
Reset the filter to a configuration that would pass the maximum amount of messages, packets, and stations.toString()
Returns a string representation of the object.
-
Constructor Details
-
MessageContentFilter
public MessageContentFilter()Create a Filter that will select based on particular types of information in packets.
-
-
Method Details
-
acceptAX25Frame
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 classFilter
- Parameters:
frame
- the timestamped AX25 frame record to analyze- Returns:
- RESULT_xxx constant indicating if message information should be displayed
-
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 classFilter
- Returns:
- String to use in looking up form label for this filter's editor
-
getFilterHelpTagName
Report a tag name used to look up JavaHelp for a filter editor.- Specified by:
getFilterHelpTagName
in classFilter
- Returns:
- String name (as defined in HelpMap.jhm) for this filter's online help, or null if there is no filter specific help
-
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 classFilter
- Returns:
- String name of GUI class for this filter
-
acceptStation
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 classFilter
- Parameters:
ss
- StationState record to analyze- Returns:
- RESULT_xxx constant indicating if station information should be displayed
-
acceptMessage
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 classFilter
- Parameters:
msg
- the APRS Message record to analyze- Returns:
- RESULT_xxx constant indicating if message information should be displayed
-
addFilterChangeListener
Register a listener for changes of this Filter.- Specified by:
addFilterChangeListener
in classFilter
- Parameters:
l
- FilterChangeListener to register
-
removeFilterChangeListener
Deregisters a listener. The listener will no longer be informed of changes to this filter.- Specified by:
removeFilterChangeListener
in classFilter
- 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 classFilter
-
canRejectSome
public boolean canRejectSome()Specifies that this filter may reject some stations, messages, and/or frames. Used to tell combining filters whether a sub-filter is in passall mode and therefore doesn't need to be checked for every call to the combiner, thereby saving CPU time when filtering when most filters are in passall mode.- Overrides:
canRejectSome
in classFilter
- Returns:
- boolean true if this filter is currently capable of rejecting something
- See Also:
-
clone
Creates and returns a copy of this object.- Overrides:
clone
in classFilter
- Returns:
- a clone of this instance.
- Throws:
CloneNotSupportedException
- if the object's class does not support theCloneable
interface. Subclasses that override theclone
method can also throw this exception to indicate that an instance cannot be cloned.- See Also:
-
getCommentText
Get the text fragment used for comment text matching.- Returns:
- matching text fragment
-
setCommentText
Set the text fragment to use for free-text comment matching. Null or an empty string specifies no comment text matching.- Parameters:
commentText
- String of text fragment to search for in free-text comments
-
getDigipeater
Get the digipeater callsign-SSID used for digipeater matching.- Returns:
- matching callsign
-
setDigipeater
Set the digipeater callsign-SSID used for digipeater matching.- Parameters:
digipeater
- matching callsign String
-
isEnabled
Report whether filtering is enabled for messages containing the specified message token as identified by a WeatherEnum or DataExtensionEnum.- Parameters:
e
- WeatherEnum or DataExtensionEnum to report on- Returns:
- boolean true if filter will test for and match only on messages containing the specified message parameter
- Throws:
IllegalArgumentException
- if not a supported Enum instance
-
setEnabled
Specify whether filtering is enabled for messages containing the specified message token as identified by a WeatherEnum or DataExtensionEnum.- Parameters:
e
- WeatherEnum or DataExtensionEnum to report onenabled
- boolean true if filter will test for and match only on messages containing the specified message parameter- Throws:
IllegalArgumentException
- if not a supported Enum instance
-
isEnabled
public boolean isEnabled()Report whether the entire MessageContentFilter is enabled to check for specific message contents.- Returns:
- boolean true if filter is enabled
-
setEnabled
public void setEnabled(boolean enabled) Specify whether the entire MessageContentFilter is enabled to check for specific message contents.- Parameters:
enabled
- boolean true if filter is enabled
-
isNotMatch
public boolean isNotMatch()Report whether this filter will pass only packets matching the enabled filter elements, or those not matching any of the enabled filter elements.- Returns:
- boolean true if only non-matches will be passed, false if only complete matches will be passed
-
setNotMatch
public void setNotMatch(boolean notMatch) Specify whether this filter will pass only packets matching the enabled filter elements, or those not matching any of the enabled filter elements.- Parameters:
notMatch
- boolean true if only non-matches will be passed, false if only complete matches will be passed
-
enumIterator
Get an Iterator through all the WeatherEnum and DataExtensionEnum values supported by this filter.- Returns:
- Iterator of Enum values
-
getLatAmbiguity
public float getLatAmbiguity()Report the current position latitude ambiguity threshold being used for ambiguity testing.- Returns:
- position ambiguity threshold in fractional degrees
-
setLatAmbiguity
Specify the current position latitude ambiguity threshold being used for ambiguity testing.- Parameters:
fLatAmbiguity
- position ambiguity threshold in fractional degrees- Throws:
IllegalArgumentException
- if invalid (negative) ambiguity level
-
isAmbiguityLtLimit
public boolean isAmbiguityLtLimit()Report whether the filter is looking for position more precise or less precise than the threshold.- Returns:
- boolean true if filter matches more precise positions
-
setAmbiguityLtLimit
public void setAmbiguityLtLimit(boolean ambiguityLtLimit) Specify whether the filter is looking for position more precise or less precise than the threshold.- Parameters:
ambiguityLtLimit
- boolean true if filter matches more precise positions
-
toString
Returns a string representation of the object.
-