Package org.astrogrid.samp
Class Subscriptions
- java.lang.Object
-
- java.util.AbstractMap
-
- org.astrogrid.samp.SampMap
-
- org.astrogrid.samp.Subscriptions
-
- All Implemented Interfaces:
java.util.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 Summary
Constructors Constructor Description Subscriptions()
Constructs an empty subscriptions object.Subscriptions(java.util.Map map)
Constructs a subscriptions object based on an existing map.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addMType(java.lang.String mtype)
Adds a subscription to a given MType.static Subscriptions
asSubscriptions(java.util.Map map)
Returns a given map in the form of a Subscriptions object.void
check()
Checks that this object is ready for use with the SAMP toolkit.java.util.Map
getSubscription(java.lang.String mtype)
Returns the map which forms the value for a given MType key.boolean
isSubscribed(java.lang.String mtype)
Determines whether a given (non-wildcarded) MType is subscribed to by this object.static int
matchLevel(java.lang.String pattern, java.lang.String mtype)
Performs wildcard matching of MTypes.-
Methods inherited from class org.astrogrid.samp.SampMap
checkHasKeys, entrySet, getList, getMap, getString, getUrl, put
-
Methods inherited from class java.util.AbstractMap
clear, clone, containsKey, containsValue, equals, get, hashCode, isEmpty, keySet, putAll, remove, size, toString, values
-
-
-
-
Method Detail
-
addMType
public void addMType(java.lang.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(java.lang.String mtype)
Determines whether a given (non-wildcarded) MType is subscribed to by this object.- Parameters:
mtype
- MType to test
-
getSubscription
public java.util.Map getSubscription(java.lang.String mtype)
Returns the map which forms the value for a given MType key. If a wildcarded subscription is recorded which matchesmtype
, the corresponding value is returned. Ifmtype
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 callingSampUtils.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 informativeDataException
will be thrown.
-
asSubscriptions
public static Subscriptions asSubscriptions(java.util.Map map)
Returns a given map in the form of a Subscriptions object.- Parameters:
map
- map- Returns:
- subscriptions
-
matchLevel
public static int matchLevel(java.lang.String pattern, java.lang.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 wildcardmtype
- unwildcarded MType for comparison withpattern
- Returns:
- the number of atoms of
pattern
which matchmtype
; ifpattern
="*" the result is 0, and if there is no match the result is -1
-
-