public class RadiusFilter extends Filter implements java.lang.Cloneable, PersistingFilter, java.io.Closeable
RESULT_NEUTRAL, RESULT_PASS, RESULT_REJECT, RESULT_WEAK_PASS, RESULT_WEAK_REJECT
Constructor and Description |
---|
RadiusFilter(java.lang.String prefPrefix)
Create a RadiusFilter instance with the specified prefix for the persistence parameter names.
|
Modifier and Type | Method and Description |
---|---|
int |
acceptAX25Frame(AX25Frame frame)
Indicate whether the specified message should be displayed.
|
int |
acceptLatLon(double lat,
double lon)
Test if the specified position is within the current range.
|
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.
|
boolean |
canRejectSome()
Specifies that this filter may reject some stations, messages, and/or frames.
|
java.lang.Object |
clone()
Creates and returns a copy of this object.
|
void |
close()
Closes this filter and releases any system resources associated
with it.
|
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.
|
double |
getLatitude()
Get the latitude center of this filter.
|
double |
getLongitude()
Get the longitude center of this filter.
|
double |
getRadiusInKM()
Get the current radius in kilometers.
|
boolean |
isEnabled()
Test if this RadiusFilter is enabled.
|
boolean |
isUseHome()
Test if this RadiusFilter will use the local station's current position or an
explicitly configured position.
|
void |
removeFilterChangeListener(FilterChangeListener l)
Deregisters a listener.
|
void |
setEnabled(boolean enabled)
Specify whether this RadiusFilter is enabled.
|
void |
setLatitude(double latitude)
Programmatically change the center point latitude of this RadiusFilter.
|
void |
setLongitude(double longitude)
Programmatically change the center point longitude of this RadiusFilter.
|
void |
setPrefPrefix(java.lang.String prefPrefix)
Change the persisted parameter prefix for this instance of RadiusFilter.
|
void |
setRadiusInKM(double radiusInKM)
Set the current radius in kilometers.
|
void |
setToPassall()
Reset the filter to a configuration that would pass the maximum
amount of messages, packets, and stations.
|
void |
setTrackerListener(TrackerListener l)
Set a
TrackerListener that should be cancelled when
this RadiusFilter instance is closed. |
void |
setUseHome(boolean useHome)
Specify if this RadiusFilter will use the local station's current position or an
explicitly configured position.
|
public RadiusFilter(java.lang.String prefPrefix)
prefPrefix
- prefix String (can be empty string "") or null to indicate this filter should not be persistedpublic java.lang.String getFilterUIName()
getFilterUIName
in class Filter
public void setPrefPrefix(java.lang.String prefPrefix)
setPrefPrefix
in interface PersistingFilter
prefPrefix
- prefix String (can be empty string "") or null to indicate this filter should not be persistedpublic double getLatitude()
public void setLatitude(double latitude)
latitude
- latitude in fractional degrees Northpublic double getLongitude()
public void setLongitude(double longitude)
longitude
- longitude in fractional degrees Eastpublic boolean isEnabled()
public void setEnabled(boolean enabled)
enabled
- boolean true if filter should affect processed messagespublic void setToPassall()
setToPassall
in class Filter
public boolean canRejectSome()
canRejectSome
in class Filter
setToPassall()
public boolean isUseHome()
public void setUseHome(boolean useHome)
useHome
- boolean true if the Radius Filter will use the current GPS position
(if available) or the configured fixed beacon position, false if the
explicitly configured position will be usedpublic double getRadiusInKM()
public void setRadiusInKM(double radiusInKM)
radiusInKM
- radius in kilometerspublic int acceptAX25Frame(AX25Frame frame)
acceptAX25Frame
in class Filter
frame
- the timestamped AX25 frame record to analyzepublic int acceptLatLon(double lat, double lon)
lat
- latitude in fractional degrees North of position to testlon
- longitude in fractional degrees East of position to testsetLatitude(double)
,
setLongitude(double)
,
setRadiusInKM(double)
public int acceptMessage(AX25Message msg)
acceptMessage
in class Filter
msg
- the APRS Message record to analyzepublic int acceptStation(StationState ss)
acceptStation
in class Filter
ss
- StationState record to analyzepublic java.lang.String getFilterTypeTagName()
getFilterTypeTagName
in class Filter
public java.lang.String getFilterHelpTagName()
getFilterHelpTagName
in class Filter
public void addFilterChangeListener(FilterChangeListener l)
addFilterChangeListener
in class Filter
l
- FilterChangeListener to registerpublic void removeFilterChangeListener(FilterChangeListener l)
removeFilterChangeListener
in class Filter
l
- FilterChangeListener to deregisterpublic java.lang.Object clone() throws java.lang.CloneNotSupportedException
x
, the expression:
will be true, and that the expression:x.clone() != x
will bex.clone().getClass() == x.getClass()
true
, but these are not absolute requirements.
While it is typically the case that:
will bex.clone().equals(x)
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.clone
in class Filter
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.Cloneable
public void setTrackerListener(TrackerListener l)
TrackerListener
that should be cancelled when
this RadiusFilter instance is closed.l
- TrackerListener to associate with the filter, or null to not have an associationpublic void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
java.io.IOException
- if an I/O error occurs