Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStoreImpl.java')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStoreImpl.java30
1 files changed, 17 insertions, 13 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStoreImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStoreImpl.java
index a40952ea04..504832ed0f 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStoreImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStoreImpl.java
@@ -205,23 +205,27 @@ public final class CDOStoreImpl implements CDOStore
TRACER.format("isSet({0}, {1})", cdoObject, feature); //$NON-NLS-1$
}
- if (!feature.isUnsettable())
+ InternalCDORevision revision = getRevisionForReading(cdoObject);
+ if (feature.isMany())
{
- if (feature.isMany())
- {
- InternalCDORevision revision = getRevisionForReading(cdoObject);
- CDOList list = revision.getList(feature);
- return list != null && !list.isEmpty();
- }
+ CDOList list = revision.getList(feature);
+ return list != null && !list.isEmpty();
+ }
- Object value = eObject.eGet(feature);
- Object defaultValue = feature.getDefaultValue();
- return !ObjectUtil.equals(value, defaultValue);
+ Object value = revision.getValue(feature);
+ if (feature.isUnsettable())
+ {
+ return value != null;
+ }
+
+ if (value == null)
+ {
+ return false;
}
- // TODO This get() may not work for lists, see above
- Object value = get(eObject, feature, NO_INDEX);
- return value != null;
+ value = convertToEMF(eObject, revision, feature, NO_INDEX, value);
+ Object defaultValue = feature.getDefaultValue();
+ return !ObjectUtil.equals(value, defaultValue);
}
}

Back to the top