Class Subscriptions

All Implemented Interfaces:
Map

public class Subscriptions extends SampMap
Represents the set of subscribed messages for a SAMP client. This has the form of a Map in which each key is an MType (perhaps wildcarded) and the corresponding values are maps with keys which are so far undefined (thus typically empty).
Since:
14 Jul 2008
Author:
Mark Taylor
  • Constructor Details

    • Subscriptions

      public Subscriptions()
      Constructs an empty subscriptions object.
    • Subscriptions

      public Subscriptions(Map map)
      Constructs a subscriptions object based on an existing map.
      Parameters:
      map - map containing initial data for this object
  • Method Details

    • addMType

      public void addMType(String mtype)
      Adds a subscription to a given MType. mtype may include a wildcard according to the SAMP rules.
      Parameters:
      mtype - subscribed MType, possibly wildcarded
    • isSubscribed

      public boolean isSubscribed(String mtype)
      Determines whether a given (non-wildcarded) MType is subscribed to by this object.
      Parameters:
      mtype - MType to test
    • getSubscription

      public Map getSubscription(String mtype)
      Returns the map which forms the value for a given MType key. If a wildcarded subscription is recorded which matches mtype, the corresponding value is returned. If mtype is not subscribed to, null is returned.
      Parameters:
      mtype - MType to query
      Returns:
      map value corresponding to mtype, or null
    • check

      public void check()
      Description copied from class: SampMap
      Checks that this object is ready for use with the SAMP toolkit. As well as calling SampUtils.checkMap(java.util.Map) (ensuring that all keys are Strings, and all values Strings, Lists or Maps), subclass-specific invariants may be checked. In the case that there's something wrong, an informative DataException will be thrown.
      Overrides:
      check in class SampMap
    • asSubscriptions

      public static Subscriptions asSubscriptions(Map map)
      Returns a given map in the form of a Subscriptions object.
      Parameters:
      map - map
      Returns:
      subscriptions
    • matchLevel

      public static int matchLevel(String pattern, String mtype)
      Performs wildcard matching of MTypes. The result is the number of dot-separated "atoms" which match between the two.
      Parameters:
      pattern - MType pattern; may contain a wildcard
      mtype - unwildcarded MType for comparison with pattern
      Returns:
      the number of atoms of pattern which match mtype; if pattern="*" the result is 0, and if there is no match the result is -1