Interface Subscription
-
public interface SubscriptionRepresents a subscription for the synch engine.A subscription has 2 connections, one for each end of the subscription. We will refer to these as endA and endB.
Each connection has a kind which is a name used to retrieve a connector from the synch engine. The retrieved connector implements the Connector interface. This connector object can then be used to retrieve a ConnectionInst implementation which uses information stored in a serializable object to obtain connection specific properties such as id and password.
These properties are obtained by presenting the user with a list of required properties and then encrypting and storing the response. The serialized result is stored as a field in the subscription.
Connections are either polling or notify. Polling means that the host will be polled to see if anything has changed. Notify means that the subscription will be activated when the system is notified of a change.
Connections are also resynch only - that is the far end does not support fetching of individual items but must be completely resynched each time, or the support the full synch feature set.
Resynch connections support relatively simple protocols or file synch.
The full feature connections are used for bedework, Exchange etc.
Skip Lists
A skip list allows the diffing process to skip properties that are not to be considered, for example lastmod. We create a skip list from 3 lists;- one for each end of the subscription. This marks properties used exclusively by that end, for example x-properties.
- One for the middle which might skip properties we want to ignore such as alarms
An empty list means exactly that, no skip properties. A null list means the default diff skip list - probably more useful.
- Author:
- Mike Douglass
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleanchanged()booleangetDeleted()org.bedework.synch.wsmessages.SynchDirectionTypegetDirection()Which way?ConnectorgetEndAConn()SubscriptionConnectorInfogetEndAConnectorInfo()ConnectorInstancegetEndAConnInst()ConnectorgetEndBConn()SubscriptionConnectorInfogetEndBConnectorInfo()ConnectorInstancegetEndBConnInst()intgetErrorCt()SubscriptionInfogetInfo()StringgetLastRefresh()org.bedework.synch.wsmessages.SynchMasterTypegetMaster()booleangetMissingTarget()SubscriptiongetOutstandingSubscription()An outstanding request that requires an unsubscribe to complete firstStringgetOwner()OwnerStringgetSubscriptionId()Our generated subscriptionId.DatenextRefresh()Get a next refresh date based on the last refresh valuebooleanpolling()longrefreshDelay()voidresetChanged()reset the changed flag.voidsetDeleted(boolean val)voidsetDirection(org.bedework.synch.wsmessages.SynchDirectionType val)voidsetEndAConn(Connector val)voidsetEndAConnectorInfo(SubscriptionConnectorInfo val)Info for the endA connector.voidsetEndAConnInst(ConnectorInstance val)voidsetEndBConn(Connector val)voidsetEndBConnectorInfo(SubscriptionConnectorInfo val)Info for the endB connector.voidsetEndBConnInst(ConnectorInstance val)voidsetErrorCt(int val)voidsetInfo(SubscriptionInfo val)Info for the subscription.voidsetLastRefresh(String val)voidsetMaster(org.bedework.synch.wsmessages.SynchMasterType val)voidsetMissingTarget(boolean val)voidsetOutstandingSubscription(Subscription val)An outstanding request that requires an unsubscribe to complete firstvoidsetOwner(String val)The owner.voidsetSubscriptionId(String val)Our generated subscriptionId.voidupdateLastRefresh()Set the lastRefresh from the current time
-
-
-
Method Detail
-
setSubscriptionId
void setSubscriptionId(String val)
Our generated subscriptionId.- Parameters:
val- String
-
getSubscriptionId
String getSubscriptionId()
Our generated subscriptionId.- Returns:
- String
-
setLastRefresh
void setLastRefresh(String val)
- Parameters:
val- A UTC dtstamp value
-
getLastRefresh
String getLastRefresh()
- Returns:
- String lastRefresh
-
setErrorCt
void setErrorCt(int val)
- Parameters:
val- int consecutive errors
-
getErrorCt
int getErrorCt()
- Returns:
- int consecutive errors
-
setMissingTarget
void setMissingTarget(boolean val)
- Parameters:
val- True if either target is missing
-
getMissingTarget
boolean getMissingTarget()
- Returns:
- True if either target is missing
-
setOwner
void setOwner(String val)
The owner. This is the (verified) account that set up the subscription. It is either the authenticated user or provided by a proxy that has verified the account. The owner is only needed for subcribing, unsubscribing and display of and updates to the subscription itself.Interactions with the end points use information contained within the subscription.
- Parameters:
val- String
-
getOwner
String getOwner()
Owner- Returns:
- String
-
setEndAConnectorInfo
void setEndAConnectorInfo(SubscriptionConnectorInfo val)
Info for the endA connector.- Parameters:
val- SubscriptionConnectorInfo
-
getEndAConnectorInfo
SubscriptionConnectorInfo getEndAConnectorInfo()
- Returns:
- SubscriptionConnectorInfo
-
setEndBConnectorInfo
void setEndBConnectorInfo(SubscriptionConnectorInfo val)
Info for the endB connector.- Parameters:
val- SubscriptionConnectorInfo
-
getEndBConnectorInfo
SubscriptionConnectorInfo getEndBConnectorInfo()
- Returns:
- SubscriptionConnectorInfo
-
setInfo
void setInfo(SubscriptionInfo val)
Info for the subscription.- Parameters:
val- SubscriptionInfo
-
getInfo
SubscriptionInfo getInfo()
- Returns:
- SubscriptionInfo
-
setDirection
void setDirection(org.bedework.synch.wsmessages.SynchDirectionType val)
- Parameters:
val- Which way?
-
getDirection
org.bedework.synch.wsmessages.SynchDirectionType getDirection()
Which way?- Returns:
- direction
-
setMaster
void setMaster(org.bedework.synch.wsmessages.SynchMasterType val)
- Parameters:
val- Which end is master?
-
getMaster
org.bedework.synch.wsmessages.SynchMasterType getMaster()
- Returns:
- who's master
-
setOutstandingSubscription
void setOutstandingSubscription(Subscription val)
An outstanding request that requires an unsubscribe to complete first- Parameters:
val- Subscription
-
getOutstandingSubscription
Subscription getOutstandingSubscription()
An outstanding request that requires an unsubscribe to complete first- Returns:
- Subscription
-
setDeleted
void setDeleted(boolean val)
- Parameters:
val- True if subscription deleted
-
getDeleted
boolean getDeleted()
- Returns:
- True if deleted
-
setEndAConn
void setEndAConn(Connector val)
- Parameters:
val- a connection
-
getEndAConn
Connector getEndAConn()
- Returns:
- a connection or null
-
setEndBConn
void setEndBConn(Connector val)
- Parameters:
val- a connection
-
getEndBConn
Connector getEndBConn()
- Returns:
- a connection or null
-
setEndAConnInst
void setEndAConnInst(ConnectorInstance val)
- Parameters:
val- a connection instance
-
getEndAConnInst
ConnectorInstance getEndAConnInst()
- Returns:
- a connection instance or null
-
setEndBConnInst
void setEndBConnInst(ConnectorInstance val)
- Parameters:
val- a connection instance
-
getEndBConnInst
ConnectorInstance getEndBConnInst()
- Returns:
- a connection instance or null
-
changed
boolean changed()
- Returns:
- true if any connector info changed
-
resetChanged
void resetChanged()
reset the changed flag.
-
polling
boolean polling()
- Returns:
- true if this has to be put on a poll queue
-
refreshDelay
long refreshDelay() throws SynchException- Returns:
- the delay in millisecs.
- Throws:
SynchException- on properties error
-
updateLastRefresh
void updateLastRefresh()
Set the lastRefresh from the current time
-
nextRefresh
Date nextRefresh() throws SynchException
Get a next refresh date based on the last refresh value- Returns:
- date value incremented by delay.
- Throws:
SynchException- on properties error
-
-