Class LocalObjectTracker

java.lang.Object
org.ka2ddo.yaac.core.LocalObjectTracker
All Implemented Interfaces:
Iterable<LocalObjectTracker.ObjectLink>, AprsMessageListener

public class LocalObjectTracker extends Object implements AprsMessageListener, Iterable<LocalObjectTracker.ObjectLink>
This class manages and tracks the state of Objects being originated by the local station. It handles shutting down an Object when some other station takes it over, and adding Objects to this list when locally created or taken over from other stations.
Author:
Andrew Pavlin, KA2DDO
  • Method Details

    • getInstance

      public static LocalObjectTracker getInstance()
      Get the singleton instance of the LocalObjectTracker.
      Returns:
      LocalObjectTracker instance
    • aprsMessageReceived

      public void aprsMessageReceived(Message msg)
      Delivers the next message received by YAAC that is an APRS message.
      Specified by:
      aprsMessageReceived in interface AprsMessageListener
      Parameters:
      msg - some subclass of Message containing the message contents; the message should have an AX25Frame connected to it
      See Also:
    • size

      public int size()
      Report the number of ObjectReports currently being tracked.
      Returns:
      count of ObjectReports
    • get

      Get the Nth ObjectReport record in the tracker.
      Parameters:
      index - zero-based index of record to fetch
      Returns:
      ObjectLink wrapper around selected ObjectReport
      Throws:
      IndexOutOfBoundsException - if index is negative or greater than the number of entries in the tracker
    • get

      public LocalObjectTracker.ObjectLink get(String objectName)
      Get the ObjectReport record in the tracker with a specified object name,
      Parameters:
      objectName - String of object name
      Returns:
      ObjectLink wrapper around selected ObjectReport, or null if no ObjectReport with specified name
    • add

      public void add(ObjectReport or)
      Add another ObjectReport to the tracker, that does not currently have an ObjectReportSender.
      Parameters:
      or - ObjectReport to add
    • add

      public void add(ObjectReportSender ors)
      Add another ObjectReport to the tracker, that in currently encapsulated by an ObjectReportSender.
      Parameters:
      ors - ObjectReportSender to add
    • remove

      public void remove(String objectName)
      Stop tracking an ObjectReport with the specified name.
      Parameters:
      objectName - String name of object to unregister
    • iterator

      Returns an iterator over elements of type ObjectLink.
      Specified by:
      iterator in interface Iterable<LocalObjectTracker.ObjectLink>
      Returns:
      an Iterator.
    • indexOf

      public int indexOf(String objectName)
      Get the zero-based index of the tracked ObjectReport with the specified name
      Parameters:
      objectName - String name of ObjectReport
      Returns:
      zero-based index of the object, or -1 if not in the tracker
    • addLocalObjectListener

      public void addLocalObjectListener(LocalObjectTracker.LocalObjectListener l)
      Register a listener to be informed of changes in the tracker.
      Parameters:
      l - LocalObjectListener to register
    • removeLocalObjectListener

      public void removeLocalObjectListener(LocalObjectTracker.LocalObjectListener l)
      Unregister a listener to be informed of changes in the tracker.
      Parameters:
      l - LocalObjectListener to unregister