diff options
author | Eike Stepper | 2012-10-31 06:24:59 +0000 |
---|---|---|
committer | Eike Stepper | 2012-10-31 06:24:59 +0000 |
commit | 01c49a910e0aa861213745d14cf5a0ddcbd1e7b6 (patch) | |
tree | 9b75a298e880b08407a049fea5ef83d0fa7f4c5c /plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java | |
parent | ecf34dbf6e73114f17704797fa9bc80c39188152 (diff) | |
download | cdo-01c49a910e0aa861213745d14cf5a0ddcbd1e7b6.tar.gz cdo-01c49a910e0aa861213745d14cf5a0ddcbd1e7b6.tar.xz cdo-01c49a910e0aa861213745d14cf5a0ddcbd1e7b6.zip |
[392956] [Legacy] Support partial/conditional persistence of features
https://bugs.eclipse.org/bugs/show_bug.cgi?id=392956
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java index d3d127c75f..a4e2cb1856 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java @@ -8,6 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation * Simon McDuff - maintenance + * Christian W. Damus - partial/conditional persistence of features */ package org.eclipse.emf.internal.cdo; @@ -17,10 +18,13 @@ import org.eclipse.emf.cdo.CDOObjectHistory; import org.eclipse.emf.cdo.CDOState; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.lock.CDOLockState; +import org.eclipse.emf.cdo.common.model.CDOModelUtil; import org.eclipse.emf.cdo.common.model.EMFUtil; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.eresource.CDOResource; import org.eclipse.emf.cdo.eresource.impl.CDOResourceImpl; +import org.eclipse.emf.cdo.spi.common.model.InternalCDOClassInfo; +import org.eclipse.emf.cdo.spi.common.model.InternalCDOClassInfo.PersistenceFilter; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision; import org.eclipse.emf.cdo.util.CDOUtil; import org.eclipse.emf.cdo.view.CDOView; @@ -1064,6 +1068,17 @@ public class CDOObjectImpl extends EStoreEObjectImpl implements InternalCDOObjec TRACER.format("Populating feature {0}", feature); //$NON-NLS-1$ } + PersistenceFilter filter = ((InternalCDOClassInfo)CDOModelUtil.getClassInfo(feature + .getEContainingClass())).getPersistenceFilter(feature); + if (filter != null) + { + if (TRACER.isEnabled()) + { + TRACER.format("Filtering value of feature {0}", feature); //$NON-NLS-1$ + } + setting = filter.getPersistableValue(object, setting); + } + CDOStore cdoStore = view.getStore(); InternalCDORevision revision = object.cdoRevision(); |