public void visit(CDOListFeatureDelta delta) { EStructuralFeature feature = delta.getFeature(); int oldSize = delta.getOriginSize(); int newSize = -1; try { IListMappingDeltaSupport listMapping = (IListMappingDeltaSupport)getListMapping(feature); listMapping.processDelta(accessor, id, branchId, oldVersion, oldVersion + 1, created, delta); } catch (NewListSizeResult result) { newSize = result.getNewListSize(); } if (oldSize != newSize) { listSizeChanges.add(Pair.create(feature, newSize)); } }
public void processDelta(final IDBStoreAccessor accessor, final CDOID id, int branchId, int oldVersion, final int newVersion, long created, CDOListFeatureDelta delta) { int oldListSize = delta.getOriginSize(); if (TRACER.isEnabled()) { TRACER.format("ListTableMapping.processDelta for object {0} - original list size: {1}", id, //$NON-NLS-1$ oldListSize); } // let the visitor collect the changes ListDeltaVisitor visitor = new ListDeltaVisitor(oldListSize); if (TRACER.isEnabled()) { TRACER.trace("Processing deltas..."); //$NON-NLS-1$ } for (CDOFeatureDelta listDelta : delta.getListChanges()) { listDelta.accept(visitor); } visitor.postProcess(accessor, id); // finally, write results to the database visitor.writeResultToDatabase(accessor, id); throw new NewListSizeResult(visitor.getNewListSize()); }
int originSize = ((CDOListFeatureDelta)sourceFeatureDelta.copy()).getOriginSize(); BasicEList<Element> ancestorList = new BasicEList<Element>(originSize); PerSide<BasicEList<Element>> listPerSide = new PerSide<BasicEList<Element>>();