private void matchComponentsToBaselines(ClearTool ct, Stream stream, List<Baseline> latestBls) throws IOException, InterruptedException, ClearToolError { /* retrieval of the components attached to the stream */ stream.setComponents(ct.getComponents(stream)); for (Baseline bl : latestBls) { Component comp; /* get baselines dependencies to detect composite components */ List<Baseline> dependentBls = ct.getDependingBaselines(bl); if (!dependentBls.isEmpty()) { comp = new CompositeComponent(ct.getComponentFromBL(bl)); } else { comp = ct.getComponentFromBL(bl); } /* mark read only components */ for (Component streamComp : stream.getComponents()) { if (streamComp.equals(comp)) { comp.setReadOnly(streamComp.isReadOnly()); break; } } bl.setComponent(comp); } }