Package org.astrogrid.samp
Class Subscriptions
java.lang.Object
java.util.AbstractMap
org.astrogrid.samp.SampMap
org.astrogrid.samp.Subscriptions
- All Implemented Interfaces:
Map
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
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,
V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs an empty subscriptions object.Subscriptions
(Map map) Constructs a subscriptions object based on an existing map. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a subscription to a given MType.static Subscriptions
asSubscriptions
(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.getSubscription
(String mtype) Returns the map which forms the value for a given MType key.boolean
isSubscribed
(String mtype) Determines whether a given (non-wildcarded) MType is subscribed to by this object.static int
matchLevel
(String pattern, 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
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Constructor Details
-
Subscriptions
public Subscriptions()Constructs an empty subscriptions object. -
Subscriptions
Constructs a subscriptions object based on an existing map.- Parameters:
map
- map containing initial data for this object
-
-
Method Details
-
addMType
Adds a subscription to a given MType.mtype
may include a wildcard according to the SAMP rules.- Parameters:
mtype
- subscribed MType, possibly wildcarded
-
isSubscribed
Determines whether a given (non-wildcarded) MType is subscribed to by this object.- Parameters:
mtype
- MType to test
-
getSubscription
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
Returns a given map in the form of a Subscriptions object.- Parameters:
map
- map- Returns:
- subscriptions
-
matchLevel
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
-