How to Set Flowcontrol using server API in scm
One answer
I don't know the SCM server APIs.
Some considerations about the SCM Server API are here: https://rsjazz.wordpress.com/2016/02/03/setting-access-control-permissions-for-scm-versionables/
The client API looks as follows:
private void setFlow(IWorkspaceConnection source, IWorkspaceConnection dest, Collection<icomponenthandle> components, IProgressMonitor monitor) throws TeamRepositoryException { // Get the current flow table IFlowTable cflowTable = source.getFlowTable().getWorkingCopy(); // Set the accept and deliver flow to the target cflowTable.addAcceptFlow(dest.getResolvedWorkspace(), dest .teamRepository().getId(), dest.teamRepository() .getRepositoryURI(), components / Collections.EMPTY_LIST /, "Accept Flow"); cflowTable.addDeliverFlow(dest.getResolvedWorkspace(), dest .teamRepository().getId(), dest.teamRepository() .getRepositoryURI(), components / Collections.EMPTY_LIST /, "Deliver Flow"); // Limit the scope for accept and delivery to the components that are // needed cflowTable.setComponentScopes(dest.getResolvedWorkspace(), components); // We want incoming and outgoing default and current flow // Set the incoming flow for current and default IFlowEntry acceptEntry = cflowTable.getAcceptFlow(dest .getResolvedWorkspace()); cflowTable.setCurrent(acceptEntry); cflowTable.setDefault(acceptEntry); // Set the incoming flow for current and default IFlowEntry deliverEntry = cflowTable.getDeliverFlow(dest .getResolvedWorkspace()); cflowTable.setCurrent(deliverEntry); cflowTable.setDefault(deliverEntry);// Set the modified flow table source.setFlowTable(cflowTable, monitor); }
</icomponenthandle>