Class SubscriptionInfo
- java.lang.Object
-
- org.apache.jackrabbit.webdav.observation.SubscriptionInfo
-
- All Implemented Interfaces:
ObservationConstants
,XmlSerializable
public class SubscriptionInfo extends Object implements ObservationConstants, XmlSerializable
SubscriptionInfo
class encapsulates the subscription info that forms the request body of a SUBSCRIBE request.
The following xml layout is defined for the subscription info:<!ELEMENT subscriptioninfo ( eventtype, nolocal?, filter? ) > <!ELEMENT eventtype ANY > ANY defines any sequence of elements where at least one defines a valid eventtype. Note that a single eventtype must not occur multiple times. <!ELEMENT nolocal EMPTY > <!ELEMENT filter ANY > ANY: any sequence of elements identifying a filter for event listening but at least a single element.
-
-
Field Summary
-
Fields inherited from interface org.apache.jackrabbit.webdav.observation.ObservationConstants
HEADER_POLL_TIMEOUT, HEADER_SUBSCRIPTIONID, N_EVENT, N_EVENTBUNDLE, N_EVENTDATE, N_EVENTDISCOVERY, N_EVENTINFO, N_EVENTMIXINNODETYPE, N_EVENTPRIMARYNODETYPE, N_EVENTTYPE, N_EVENTUSERDATA, N_EVENTUSERID, NAMESPACE, SUBSCRIPTIONDISCOVERY, XML_EVENT, XML_EVENT_LOCAL, XML_EVENT_TRANSACTION_ID, XML_EVENTBUNDLE, XML_EVENTDATE, XML_EVENTDISCOVERY, XML_EVENTIDENTIFIER, XML_EVENTINFO, XML_EVENTMIXINNODETYPE, XML_EVENTPRIMARNODETYPE, XML_EVENTSWITHLOCALFLAG, XML_EVENTSWITHTYPES, XML_EVENTTYPE, XML_EVENTUSERDATA, XML_EVENTUSERID, XML_FILTER, XML_NODETYPE_NAME, XML_NOLOCAL, XML_SUBSCRIPTION, XML_SUBSCRIPTIONID, XML_SUBSCRIPTIONINFO, XML_UUID
-
-
Constructor Summary
Constructors Constructor Description SubscriptionInfo(EventType[] eventTypes, boolean isDeep, long timeout)
Create a newSubscriptionInfo
SubscriptionInfo(EventType[] eventTypes, Filter[] filters, boolean noLocal, boolean isDeep, long timeout)
Create a newSubscriptionInfo
SubscriptionInfo(Element reqInfo, long timeout, boolean isDeep)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description EventType[]
getEventTypes()
Return array of event type names present in the subscription info.Filter[]
getFilters()
Return all filters defined for thisSubscriptionInfo
Filter[]
getFilters(String localName, Namespace namespace)
Return array of filters with the specified name.long
getTimeOut()
Return the timeout as retrieved from the request.boolean
isDeep()
Returns true if thedepths header
defined a depth other than '0'.boolean
isNoLocal()
Returns true if theObservationConstants.XML_NOLOCAL
element is present in this subscription info.Element
toXml(Document document)
Xml representation of thisSubscriptionInfo
.
-
-
-
Constructor Detail
-
SubscriptionInfo
public SubscriptionInfo(EventType[] eventTypes, boolean isDeep, long timeout)
Create a newSubscriptionInfo
- Parameters:
eventTypes
-isDeep
-timeout
-
-
SubscriptionInfo
public SubscriptionInfo(EventType[] eventTypes, Filter[] filters, boolean noLocal, boolean isDeep, long timeout)
Create a newSubscriptionInfo
- Parameters:
eventTypes
-filters
-noLocal
-isDeep
-timeout
-
-
SubscriptionInfo
public SubscriptionInfo(Element reqInfo, long timeout, boolean isDeep) throws DavException
Create a newSubscriptionInfo
from the given Xml element and from additional information that is transported within the request header:- Parameters:
reqInfo
- Xml element present in the request body.timeout
- as defined in thetimeout header
.isDeep
- as defined in thedepth header
.- Throws:
IllegalArgumentException
- if the reqInfo element does not contain the mandatory elements.DavException
-
-
Method Detail
-
getEventTypes
public EventType[] getEventTypes()
Return array of event type names present in the subscription info.- Returns:
- array of String defining the names of the events this subscription should listen to.
-
getFilters
public Filter[] getFilters()
Return all filters defined for thisSubscriptionInfo
- Returns:
- all filters or an empty Filter array.
-
getFilters
public Filter[] getFilters(String localName, Namespace namespace)
Return array of filters with the specified name.- Parameters:
localName
- the filter elements must provide.namespace
-- Returns:
- array containing the text of the filter elements with the given name.
-
isNoLocal
public boolean isNoLocal()
Returns true if theObservationConstants.XML_NOLOCAL
element is present in this subscription info.- Returns:
- if
ObservationConstants.XML_NOLOCAL
element is present.
-
isDeep
public boolean isDeep()
Returns true if thedepths header
defined a depth other than '0'.- Returns:
- true if this subscription info was created with
isDeep
true.
-
getTimeOut
public long getTimeOut()
Return the timeout as retrieved from the request.- Returns:
- timeout.
-
toXml
public Element toXml(Document document)
Xml representation of thisSubscriptionInfo
.- Specified by:
toXml
in interfaceXmlSerializable
- Parameters:
document
-- Returns:
- Xml representation
- See Also:
XmlSerializable.toXml(Document)
-
-