It's all about the answers!

Ask a question

How to set components scope in flow target using plain java/ client side api?


Andrew Ciaz (111) | asked Mar 13, 7:12 a.m.

 Hi all,

My requirement is I want to scoped only selected components to flow with stream, I know in stream editor already has option for scope component, but I want to do it by code. Please suggest solution

Accepted answer


permanent link
Ralph Schoon (54.1k13641) | answered Mar 13, 7:24 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
    private void setFlow(IWorkspaceConnection source,
            IWorkspaceConnection dest, Collection<icomponenthandle> components,
            IProgressMonitor monitor) throws TeamRepositoryException {
        System.out.print("Set flow targets and component scope " + source.getName() + " to " + dest.getName() );

        // 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);
        System.out.println(" success...");
           }
Ralph Schoon selected this answer as the correct answer

Comments
Andrew Ciaz commented Mar 20, 7:11 a.m.

Thanks @Ralph Schoon for your valuable contribution

Your answer


Register or to post your answer.