|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.starteam.ViewPollingAgent
public final class ViewPollingAgent
Used to periodically poll a given view for recent changes, triggering FolderUpdateEvents, ItemUpdateEvents and ViewMemberUpdateEvents describing the changes detected since the last poll.
Events are triggered only for differences detectable across the polling interval. For example, if an item is added then removed without an intervening refresh, then no events would be triggered for that item.
Events are triggered in an order that reflects the times the change actually occurred, when possible. For some older server versions, it is not possible to determine when a move has occurred. It is also not currently possible to determine when a folder or item was removed. Such events are triggered last.
There are two basic ways to use a ViewPollingAgent. The first way is to create one and keep it around for a long time, periodically calling refresh() to trigger events. This is generally faster than creating a new ViewPollingAgent for each refresh(). However, the ViewPollingAgent consumes memory while it is in use.
The second way is to create a new ViewPollingAgent at each polling interval, call refresh() once to trigger events, and save the time returned by refresh() to use later when creating a ViewPollingAgent for the next poll. This is slower, but uses less memory between polls.
| Constructor Summary | |
|---|---|
ViewPollingAgent(View view,
DateTime startTime)
Constructs a new ViewPollingAgent. |
|
| Method Summary | |
|---|---|
void |
addFolderUpdateListener(FolderUpdateListener listener)
Registers a FolderUpdateListener, whose methods will be invoked during a refresh() whenever changes to the folder tree are detected. |
void |
addItemUpdateListener(ItemUpdateListener listener,
Item.Type type)
Registers an ItemUpdateListener, whose methods will be invoked during a refresh() whenever changes to the items of the given type are detected. |
void |
addRequiredProperties(ViewMember.Type type,
PropertyCollection pc)
Marks a list of properties as required for a given type. |
void |
addRequiredProperty(ViewMember.Type type,
Property property)
Marks a given property as required for a given type. |
void |
addViewMemberUpdateListener(ViewMemberUpdateListener listener,
ViewMember.Type type)
Registers a ViewMemberUpdateListener, whose methods will be invoked during a refresh() whenever changes to the view members of the given type are detected. |
void |
close()
Frees all cached resources associated with this ViewPollingAgent, and closes the associated view. |
DateTime |
refresh()
Refreshes the view, triggering FolderUpdateEvents and ItemUpdateEvents for all changes detected since the previous refresh (or since the start ViewPollingAgent's start time, if this is the first refresh). |
void |
removeFolderUpdateListener(FolderUpdateListener listener)
Unregisters a previously registered FolderUpdateListener. |
void |
removeItemUpdateListener(ItemUpdateListener listener,
Item.Type type)
Unregisters a previously registered ItemUpdateListener. |
void |
removeViewMemberUpdateListener(ViewMemberUpdateListener listener,
ViewMember.Type type)
Unregisters a previously registered ViewMemberUpdateListener. |
void |
setAllPropertiesRequired(ViewMember.Type type)
Marks all properties as required for a given type. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ViewPollingAgent(View view,
DateTime startTime)
view - The view whose changes are to be monitored.startTime - The start time for detecting changes. Often the same as the
time returned by the last call to refresh() from a previously
instantiated ViewPollingAgent.| Method Detail |
|---|
public void addFolderUpdateListener(FolderUpdateListener listener)
listener - The listener to be registered.FolderUpdateListener,
ViewPollingAgent.refresh(),
ViewPollingAgent.removeFolderUpdateListener(com.starteam.events.FolderUpdateListener)public void removeFolderUpdateListener(FolderUpdateListener listener)
listener - The listener to be unregistered.ViewPollingAgent.addFolderUpdateListener(com.starteam.events.FolderUpdateListener)
public void addItemUpdateListener(ItemUpdateListener listener,
Item.Type type)
Note that all ItemUpdateListeners must be added before the first refresh(). Use this listener interface for viewMembers that live in folders (e.g. File, ChangeRequest)
listener - The listener to be registered.type - The item type.ItemUpdateListener,
ViewPollingAgent.refresh(),
ViewPollingAgent.removeItemUpdateListener(com.starteam.events.ItemUpdateListener, com.starteam.Item.Type)
public void removeItemUpdateListener(ItemUpdateListener listener,
Item.Type type)
listener - The listener to be unregistered.type - The item type.ViewPollingAgent.addItemUpdateListener(com.starteam.events.ItemUpdateListener, com.starteam.Item.Type)
public void addViewMemberUpdateListener(ViewMemberUpdateListener listener,
ViewMember.Type type)
listener - The listener to be registered.type - The view member type.ViewMemberUpdateListener,
ViewPollingAgent.refresh(),
ViewPollingAgent.removeViewMemberUpdateListener(com.starteam.events.ViewMemberUpdateListener, com.starteam.ViewMember.Type)
public void removeViewMemberUpdateListener(ViewMemberUpdateListener listener,
ViewMember.Type type)
listener - The listener to be unregistered.type - The viewMember type.ViewPollingAgent.addViewMemberUpdateListener(com.starteam.events.ViewMemberUpdateListener, com.starteam.ViewMember.Type)
public void addRequiredProperty(ViewMember.Type type,
Property property)
If addPropertyName() or any of its variations is never called for a given type, then a default set of properties (including the type's descriptors) is assumed. In fact, if neither addPropertyName() nor addItemUpdateListener() is called, then that item type is not even refreshed.
type - An item type.property - A property .ViewPollingAgent.refresh(),
ViewPollingAgent.setAllPropertiesRequired(com.starteam.ViewMember.Type)
public void addRequiredProperties(ViewMember.Type type,
PropertyCollection pc)
type - An item type.pc - A collection of properties.ViewPollingAgent.addRequiredProperty(com.starteam.ViewMember.Type, com.starteam.Property)public void setAllPropertiesRequired(ViewMember.Type type)
type - An item type.ViewPollingAgent.addRequiredProperty(com.starteam.ViewMember.Type, com.starteam.Property)public DateTime refresh()
The folder tree is always refreshed. In addition, all items a refreshed for each item type that the application has shown an interest in, either by adding an ItemUpdateListener for that item type, or by calling addRequiredPropertyName() with that item type.
public void close()
View.close()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||