com.starteam.viewcomparemerge
Class Scope

java.lang.Object
  extended by com.starteam.viewcomparemerge.Scope
Direct Known Subclasses:
AnyScope, EveryScope, FolderScope, ItemListScope, ItemTypeScope, ProcessItemScope, RevisionLabelScope

public abstract class Scope
extends java.lang.Object

Provides a client application a flexible way to specify the scope of a view compare/merge operation.

The View Compare/Merge engine provides implementations of Scope that should suffice for most applications. In each case, the implementation is public, and may be re-used in the development of custom Scopes.

See Also:
ItemTypeScope, FolderScope, ItemListScope, RevisionLabelScope, ProcessItemScope, AnyScope, EveryScope

Constructor Summary
Scope()
           
 
Method Summary
abstract  java.lang.String getDescription()
          Get a String that gives a reasonable description of this scope.
abstract  Item getIncludedRevision(Item item)
          Determines whether or not the given source item is in scope for the current view compare/merge operation, and, if so, returns the item revision that should be used for comparision.
abstract  TypeCollection getItemTypes()
          Get the list of item types that are included in this scope.
abstract  boolean isFullScope(Item.Type type)
          Determines whether or not this represents a "Full Scope" operation for the given item type.
abstract  void refresh(Session session)
          Provides a scope the opportunity to initialize or refresh its state.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Scope

public Scope()
Method Detail

isFullScope

public abstract boolean isFullScope(Item.Type type)
Determines whether or not this represents a "Full Scope" operation for the given item type. If a scope restricts anything other than the item type, it is not considered a full scope operation.

Parameters:
type - the type to test against
Returns:
boolean true if this type is at full scope

refresh

public abstract void refresh(Session session)
Provides a scope the opportunity to initialize or refresh its state. As a result, some Items that were previously in scope may now be out of scope, and vice versa.

The view compare/merge engine calls refresh() once at the start of Session.compare(), and once for each call to Session.refresh().

Parameters:
session - the session to refresh

getItemTypes

public abstract TypeCollection getItemTypes()
Get the list of item types that are included in this scope. Note that folders are always processed, whether or not the scope indicates that they should be included.

Returns:
The list of types to be processed.

getIncludedRevision

public abstract Item getIncludedRevision(Item item)
Determines whether or not the given source item is in scope for the current view compare/merge operation, and, if so, returns the item revision that should be used for comparision.

During a compare operation, the getIncludedRevision() method is called for every source folder whose parent is in scope, and for every item whose type and parent folder are in scope.

Each implementation of Scope must guarantee that if getIncludedRevision() is called again on the same item, without an intervening call to refresh(), the result is the same between calls. That is, until a refresh() is called, a given item must be consistently in scope or out of scope.

Scope implementations may assume that getIncludedRevision() is called only for types that are in scope (and folders).

Parameters:
item - Item the item to test for inclusion
Returns:
Item the included revision, if any

getDescription

public abstract java.lang.String getDescription()
Get a String that gives a reasonable description of this scope. Depending on the specific scope, this may include the description of a few representative items that are in scope, or a more general description.

Returns:
a String that provides a description of this scope.


StarTeam SDK 13.0, Build 31
Copyright © 2003-2012 Borland Software Corporation. All rights reserved.