It's all about the answers!

Ask a question

Setting the last baseline while adding a component

Michele Pegoraro (1.8k12116103) | asked Oct 05 '11, 12:36 p.m.
I'm working on a server side extension which add a component to a stream. I'm using this code:

IWorkspaceHandle udcStream  = listOfStream.get(0);

List<IComponentOpDescriptor> componentOpDescriptorList = new ArrayList<IComponentOpDescriptor>();
List<IComponentHandle> componentList = scmQuery.findComponents(componentCriteria, 1, null).getItemHandles();
IComponentHandle componentHandle = componentList.get(0);
componentOpDescriptorList.add(IComponentOpDescriptor.FACTORY.addComponent(componentHandle, true));
scmService.updateComponents2(udcStream, null, (IComponentOpDescriptor[])componentOpDescriptorList.toArray(new IComponentOpDescriptor[componentOpDescriptorList.size()]), false, false, ScmDtoFactory.eINSTANCE.createWorkspaceRefreshParameter(), null, null);

It works good, excepting for one thing: the component which I add has only the initial baseline. How can I set another baseline?


One answer

permanent link
Dax Haslam (2025) | answered Mar 01 '13, 3:53 p.m.
 Old Question I know but thought I'd share what I found because I faced the same issue:

You have to find the baseline handle and componentHandle you want ( and then use them when adding the components like this:

componentOpDescriptorList.add(IComponentOpDescriptor.FACTORY.addComponent(componentHandle, baselineHandle, true));

You can also use IComponentOpDescriptor.FACTORY to build the array for you like this:

scmService.updateComponents2(udcStream, null, IComponentOpDescriptor.FACTORY.array(IComponentOpDescriptor.FACTORY.addComponent(componentHandle, baselineHandle, true), false, false, ScmDtoFactory.eINSTANCE.createWorkspaceRefreshParameter(), null, null);

Your answer

Register or to post your answer.