@Override public final EClass eClass() { return revision.getEClass(); }
public EClass getObjectType(CDOID id) { synchronized (revisions) { Reference<InternalCDORevision> ref = revisions.get(id); if (ref != null) { InternalCDORevision revision = ref.get(); if (revision != null) { return revision.getEClass(); } } return null; } }
public EClass getEClass() { return getDelegate().getEClass(); }
public EClass getObjectType(CDOID id) { synchronized (revisionLists) { RevisionList revisionList = revisionLists.get(id); if (revisionList != null && !revisionList.isEmpty()) { Reference<InternalCDORevision> ref = revisionList.getFirst(); InternalCDORevision revision = ref.get(); if (revision != null) { return revision.getEClass(); } } return null; } }
protected Object value(Attributes attributes) { String type = attributes.getValue(FEATURE_TYPE); if (TYPE_BLOB.equals(type)) { byte[] id = HexUtil.hexToBytes(attributes.getValue(FEATURE_ID)); long size = Long.parseLong(attributes.getValue(FEATURE_SIZE)); return CDOLobUtil.createBlob(id, size); } if (TYPE_CLOB.equals(type)) { byte[] id = HexUtil.hexToBytes(attributes.getValue(FEATURE_ID)); long size = Long.parseLong(attributes.getValue(FEATURE_SIZE)); return CDOLobUtil.createClob(id, size); } if (TYPE_FEATURE_MAP.equals(type)) { String innerFeatureName = attributes.getValue(FEATURE_INNER_FEATURE); EStructuralFeature innerFeature = revision.getEClass().getEStructuralFeature(innerFeatureName); String innerType = attributes.getValue(FEATURE_INNER_TYPE); Object innerValue = value(attributes, innerType); return CDORevisionUtil.createFeatureMapEntry(innerFeature, innerValue); } return value(attributes, type); }
private InternalCDOObject newInstance(InternalCDORevision revision) { InternalCDOObject object = newInstance(revision.getEClass()); object.cdoInternalSetRevision(revision); object.cdoInternalSetView(this); object.cdoInternalSetState(CDOState.NEW); return object; }
public void rawStore(InternalCDORevision revision, OMMonitor monitor) { CDOID id = revision.getID(); CDOClassifierRef classifierRef = getStore().getMappingStrategy().readObjectType(this, id); boolean isFirstRevision = classifierRef == null; if (!isFirstRevision) { EClass eClass = revision.getEClass(); boolean namesMatch = classifierRef.getClassifierName().equals(eClass.getName()); boolean packagesMatch = classifierRef.getPackageURI().equals(eClass.getEPackage().getNsURI()); if (!namesMatch || !packagesMatch) { throw new IllegalStateException(); } } writeRevision(revision, isFirstRevision, false, monitor); getStore().getIDHandler().adjustLastObjectID(id); }
/** * TODO Consider using only EMF concepts for resolving proxies! */ protected void resolveAllProxies() { CDOPackageRegistry packageRegistry = cdoView().getSession().getPackageRegistry(); EClass eClass = revision.getEClass(); for (EStructuralFeature feature : CDOModelUtil.getAllPersistentFeatures(eClass)) { if (feature instanceof EReference) { resolveProxies(feature, packageRegistry); } } }
protected void writeRevision(InternalCDORevision revision, boolean mapType, boolean revise, OMMonitor monitor) { if (TRACER.isEnabled()) { TRACER.format("Writing revision: {0}", revision); //$NON-NLS-1$ } EClass eClass = revision.getEClass(); IClassMapping mapping = getStore().getMappingStrategy().getClassMapping(eClass); mapping.writeRevision(this, revision, mapType, revise, monitor); }
private InternalCDOObject newInstance(InternalCDORevision revision) { InternalCDOObject object = newInstance(revision.getEClass()); object.cdoInternalSetID(revision.getID()); object.cdoInternalSetRevision(revision); object.cdoInternalSetState(CDOState.NEW); object.cdoInternalSetView(this); return object; }
private boolean handleRevision(InternalCDORevision revision, EClass eClass, CDOBranch branch, long timeStamp, boolean exactTime, CDORevisionHandler handler) { if (eClass != null && revision.getEClass() != eClass) { return true; } if (branch != null && revision.getBranch() != branch) { return true; } if (timeStamp != CDOBranchPoint.INVALID_DATE) { if (exactTime) { if (timeStamp != CDOBranchPoint.UNSPECIFIED_DATE && revision.getTimeStamp() != timeStamp) { return true; } } else { if (!revision.isValid(timeStamp)) { return true; } } } return handler.handleRevision(revision); }
InternalCDOObject object = newInstance(revision.getEClass()); object.cdoInternalSetView(this);
private void applyNewObjects(List<CDOIDAndVersion> newObjects, List<CDOIDAndVersion> result) { for (CDOIDAndVersion key : newObjects) { InternalCDORevision revision = (InternalCDORevision)key; CDOID id = revision.getID(); if (getObjectIfExists(id) == null) { // XXX (apeteri): replace actual instances with temp CDOIDs revision.adjustReferences(CDOObjectToCDOIDAdjuster.INSTANCE); InternalCDOObject object = newInstance(revision.getEClass()); object.cdoInternalSetView(this); object.cdoInternalSetRevision(revision); object.cdoInternalSetID(id); object.cdoInternalSetState(CDOState.NEW); object.cdoInternalPostLoad(); registerObject(object); registerAttached(object, true); result.add(revision); dirty = true; } } }
protected void instanceToRevision() { if (TRACER.isEnabled()) { TRACER.format("Transfering instance to revision: {0} --> {1}", instance, revision); //$NON-NLS-1$ } // Handle containment instanceToRevisionContainment(); // Handle values CDOPackageRegistry packageRegistry = cdoView().getSession().getPackageRegistry(); EClass eClass = revision.getEClass(); for (EStructuralFeature feature : CDOModelUtil.getAllPersistentFeatures(eClass)) { instanceToRevisionFeature(feature, packageRegistry); } revision.setUnchunked(); }
/** * @return Never <code>null</code> */ private InternalCDOObject createObject(CDOID id) { if (TRACER.isEnabled()) { TRACER.trace("Creating object for " + id); //$NON-NLS-1$ } InternalCDORevision revision = getRevision(id, true); if (revision == null) { throw new ObjectNotFoundException(id, this); } EClass eClass = revision.getEClass(); InternalCDOObject object; if (CDOModelUtil.isResource(eClass) && !id.equals(getSession().getRepositoryInfo().getRootResourceID())) { object = (InternalCDOObject)newResourceInstance(revision); // object is PROXY } else { object = newInstance(eClass); // object is TRANSIENT } cleanObject(object, revision); return object; }
if (folderRevision.getEClass() != resourceFolderClass)
if (folderRevision.getEClass() != resourceFolderClass)
private void applyNewObjects(List<CDOIDAndVersion> newObjects, List<CDOIDAndVersion> result) { for (CDOIDAndVersion key : newObjects) { InternalCDORevision revision = (InternalCDORevision)key; CDOID id = revision.getID(); if (getObjectIfExists(id) == null) { revision = revision.copy(); revision.setBranchPoint(getBranchPoint()); revision.setVersion(0); InternalCDOObject object = newInstance(revision.getEClass()); object.cdoInternalSetView(this); object.cdoInternalSetRevision(revision); object.cdoInternalSetState(CDOState.NEW); object.cdoInternalPostLoad(); registerObject(object); registerAttached(object, true); result.add(revision); dirty = true; } } }
EClass eClass = revision.getEClass();
/** * @return Never <code>null</code> */ private InternalCDOObject createObject(CDOID id) { if (TRACER.isEnabled()) { TRACER.trace("Creating object for " + id); //$NON-NLS-1$ } InternalCDORevision revision = getRevision(id, true); if (revision == null) { throw new ObjectNotFoundException(id, this); } EClass eClass = revision.getEClass(); InternalCDOObject object; if (CDOModelUtil.isResource(eClass) && id != getSession().getRepositoryInfo().getRootResourceID()) { object = (InternalCDOObject)newResourceInstance(revision); // object is PROXY } else { object = newInstance(eClass); // object is TRANSIENT } cleanObject(object, revision); CDOStateMachine.INSTANCE.dispatchLoadNotification(object); return object; }