IWorkspaceHandle and IVersionableHandle?
Hi,
I'm looking at the first code snippet on this page:
https://jazz.net/wiki/bin/view/Main/RTCSDK20_SourceControl
ITeamRepository repo = ...;
IWorkspaceHandle workspaceHandle = ...;
IVersionableHandle versionableHandle = ...;
//fetch workspace from IItemManager
IItemManager itemManager = repo.itemManager();
IWorkspace workspace = (IWorkspace) itemManager.fetchCompleteItem(workspaceHandle, monitor);
//fetch workspace connection from IWorkspaceManager
IWorkspaceManager workspaceManager = SCMPlatform.getWorkspaceManager(repo);
IWorkspaceConnection workspaceConnection = workspaceManager.getWorkspaceConnection(workspaceHandle, monitor);
//fetch a list of components from IItemManager
List<IComponentHandle> componentHandles = workspace.getComponents();
List<IComponent> components = itemManager.fetchCompleteItems(components, componentHandles);
//fetch a versionable from IConfiguration
IComponentHandle componentHandle = components.get(0);
IConfiguration configuration = workspaceConnection.configuration(componentHandle);
IVersionable versionable = configuration.fetchCompleteItem(versionable);
//cast IVersionable to IFileItem
if (IFileItem.ITEM_TYPE.equals(versionable.getItemType())) {
IFileItem file = (IFileItem) versionable;
}
Can someone please clarify the purpose of IWorkspaceHandle and IVersionableHandle? How should I initialize workspaceHandle and versionbleHandle?
Thanks!
I'm looking at the first code snippet on this page:
https://jazz.net/wiki/bin/view/Main/RTCSDK20_SourceControl
ITeamRepository repo = ...;
IVersionableHandle versionableHandle = ...;
//fetch workspace from IItemManager
IItemManager itemManager = repo.itemManager();
IWorkspace workspace = (IWorkspace) itemManager.fetchCompleteItem(workspaceHandle, monitor);
//fetch workspace connection from IWorkspaceManager
IWorkspaceManager workspaceManager = SCMPlatform.getWorkspaceManager(repo);
IWorkspaceConnection workspaceConnection = workspaceManager.getWorkspaceConnection(workspaceHandle, monitor);
//fetch a list of components from IItemManager
List<IComponentHandle> componentHandles = workspace.getComponents();
List<IComponent> components = itemManager.fetchCompleteItems(components, componentHandles);
//fetch a versionable from IConfiguration
IComponentHandle componentHandle = components.get(0);
IConfiguration configuration = workspaceConnection.configuration(componentHandle);
IVersionable versionable = configuration.fetchCompleteItem(versionable);
//cast IVersionable to IFileItem
if (IFileItem.ITEM_TYPE.equals(versionable.getItemType())) {
IFileItem file = (IFileItem) versionable;
}
Can someone please clarify the purpose of IWorkspaceHandle and IVersionableHandle? How should I initialize workspaceHandle and versionbleHandle?
Thanks!
3 answers
I suspect that the code snippet assumes that you already have a handle
to a repository, a workspace and a versionable (i.e.a file or folder).
Where you would get them from really depends on the operation you are
trying to write.
Michael
The workspace is the place to check out and check in changes. You can also access the configuration from a workspace to get the versionables. There has to be some sort of context (stream/workspace/snapshot) to what you want to access. This is why you need the IWorkspaceHandle. It can get you the IWorkspaceConnection that can get to the versionables.