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
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
ATOM_REGEX
private static java.util.regex.Pattern
MSUB_PATTERN
private static java.lang.String
MSUB_REGEX
private static java.lang.String
MTYPE_REGEX
-
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.private static int
countAtoms(java.lang.String text)
Counts the number of dot-separated "atoms" in a string.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
-
-
-
-
Field Detail
-
ATOM_REGEX
private static final java.lang.String ATOM_REGEX
- See Also:
- Constant Field Values
-
MTYPE_REGEX
private static java.lang.String MTYPE_REGEX
-
MSUB_REGEX
private static java.lang.String MSUB_REGEX
-
MSUB_PATTERN
private static final java.util.regex.Pattern MSUB_PATTERN
-
-
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
-
countAtoms
private static int countAtoms(java.lang.String text)
Counts the number of dot-separated "atoms" in a string.- Parameters:
text
- string to test
-
-