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 voidaddMType(java.lang.String mtype)Adds a subscription to a given MType.static SubscriptionsasSubscriptions(java.util.Map map)Returns a given map in the form of a Subscriptions object.voidcheck()Checks that this object is ready for use with the SAMP toolkit.java.util.MapgetSubscription(java.lang.String mtype)Returns the map which forms the value for a given MType key.booleanisSubscribed(java.lang.String mtype)Determines whether a given (non-wildcarded) MType is subscribed to by this object.static intmatchLevel(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.mtypemay 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. Ifmtypeis not subscribed to,nullis returned.- Parameters:
mtype- MType to query- Returns:
- map value corresponding to
mtype, or null
-
check
public void check()
Description copied from class:SampMapChecks 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 informativeDataExceptionwill 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
patternwhich matchmtype; ifpattern="*" the result is 0, and if there is no match the result is -1
-
-