Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/resource/StoreResource.java')
-rw-r--r--plugins/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/resource/StoreResource.java131
1 files changed, 6 insertions, 125 deletions
diff --git a/plugins/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/resource/StoreResource.java b/plugins/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/resource/StoreResource.java
index 455c79ef8..945b7919f 100644
--- a/plugins/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/resource/StoreResource.java
+++ b/plugins/org.eclipse.emf.teneo/src/org/eclipse/emf/teneo/resource/StoreResource.java
@@ -12,7 +12,7 @@
*
* </copyright>
*
- * $Id: StoreResource.java,v 1.5 2006/10/21 10:10:49 mtaal Exp $
+ * $Id: StoreResource.java,v 1.6 2006/11/13 19:55:40 mtaal Exp $
*/
package org.eclipse.emf.teneo.resource;
@@ -22,7 +22,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.RandomAccess;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -36,21 +35,13 @@ import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
-import org.eclipse.emf.ecore.util.Diagnostician;
import org.eclipse.emf.ecore.util.EContentsEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.FeatureMap;
-import org.eclipse.emf.ecore.util.FeatureMapUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.emf.ecore.util.EContentsEList.FeatureIteratorImpl;
import org.eclipse.emf.teneo.EContainerRepairControl;
import org.eclipse.emf.teneo.StoreValidationException;
-import org.eclipse.emf.teneo.mapping.elist.PersistableDelegateList;
-import org.eclipse.emf.teneo.mapping.elist.PersistableEMap;
import org.eclipse.emf.teneo.util.StoreUtil;
/**
@@ -58,7 +49,7 @@ import org.eclipse.emf.teneo.util.StoreUtil;
* settrackingmodification will not load unloaded elists.
*
* @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public abstract class StoreResource extends ResourceImpl {
@@ -333,7 +324,7 @@ public abstract class StoreResource extends ResourceImpl {
/** Copied from IBM tutorial, validates one eobject */
public org.eclipse.emf.common.util.Diagnostic validateObject(EObject eObject) {
- org.eclipse.emf.common.util.Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject);
+ org.eclipse.emf.common.util.Diagnostic diagnostic = NonLoadingDiagnostician.INSTANCE.validate(eObject);
if (diagnostic.getSeverity() == org.eclipse.emf.common.util.Diagnostic.ERROR) {
return diagnostic;
}
@@ -426,7 +417,8 @@ public abstract class StoreResource extends ResourceImpl {
public void attached(EObject eObject) {
attachedHelper(eObject);
for (Iterator tree = getNonResolvingContent(eObject).basicIterator(); tree.hasNext();) {
- attachedHelper((EObject) tree.next());
+ final Object obj = tree.next();
+ attachedHelper((EObject) obj);
}
}
@@ -582,118 +574,7 @@ public abstract class StoreResource extends ResourceImpl {
/** Returns a non-resolving contents elist for an eobject */
private EContentsEList getNonResolvingContent(EObject eObject) {
- return new EContentsEList(eObject) {
- protected boolean resolve() {
- return false;
- }
-
- public Iterator basicIterator() {
- if (eStructuralFeatures == null) {
- return FeatureIteratorImpl.EMPTY_ITERATOR;
- }
-
- return getFeatureIterator(eObject, eStructuralFeatures);
- }
- };
- }
-
- /** Returns a featureiterator which does not load unloaded elists */
- private Iterator getFeatureIterator(EObject eObject, EStructuralFeature[] eStructuralFeatures) {
- if (eStructuralFeatures == null) {
- return FeatureIteratorImpl.EMPTY_ITERATOR;
- }
-
- return new FeatureIteratorImpl(eObject, eStructuralFeatures) {
- public boolean hasNext() {
- switch (prepared) {
- case 3:
- case 2: {
- return true;
- }
- case 1: {
- return false;
- }
- case -3: {
- // Undo the preparation for previous and continue.
- // Undo the preparation for previous and continue.
- if (values == null) {
- ++valueListIndex;
- } else {
- values.next();
- }
- }
- default: {
- if (valueList == null || (values == null ? !scanNext() : !scanNext(values))) {
- while (featureCursor < eStructuralFeatures.length) {
- EStructuralFeature feature = eStructuralFeatures[featureCursor++];
-
- if (feature.isMany()) {
- Object value = eObject.eGet(feature, resolve());
- if (value instanceof PersistableDelegateList
- && !((PersistableDelegateList) value).isLoaded()) {
- continue;
- }
- if (value instanceof PersistableEMap && !((PersistableEMap) value).isLoaded()) {
- continue;
- }
- }
- if (isIncluded(feature) && (!useIsSet() || eObject.eIsSet(feature))) {
- Object value = eObject.eGet(feature, resolve());
- isHandlingFeatureMap = FeatureMapUtil.isFeatureMap(feature);
- if (isHandlingFeatureMap || feature.isMany()) {
- valueList = resolve() ? (List) value : (valueInternalEList = (InternalEList) value);
- if (valueList instanceof RandomAccess) {
- values = null;
- valueListSize = valueList.size();
- valueListIndex = 0;
- } else {
- values = valueInternalEList == null ? valueList.listIterator()
- : valueInternalEList.basicListIterator();
- }
- if (values == null ? scanNext() : scanNext(values)) {
- preparedResult = values == null ? valueInternalEList == null ? valueList
- .get(valueListIndex++) : valueInternalEList.basicGet(valueListIndex++)
- : values.next();
- if (isHandlingFeatureMap) {
- FeatureMap.Entry entry = (FeatureMap.Entry) preparedResult;
- preparedFeature = entry.getEStructuralFeature();
- preparedResult = entry.getValue();
- } else {
- preparedFeature = feature;
- }
- prepared = 3;
- return true;
- }
- } else if (value != null) {
- valueList = null;
- values = null;
- preparedResult = value;
- preparedFeature = feature;
- prepared = 2;
- return true;
- }
- }
- }
- valueList = null;
- values = null;
- isHandlingFeatureMap = false;
- prepared = 1;
- return false;
- } else {
- preparedResult = values == null ? valueInternalEList == null ? valueList.get(valueListIndex++)
- : valueInternalEList.basicGet(valueListIndex++) : values.next();
- if (isHandlingFeatureMap) {
- FeatureMap.Entry entry = (FeatureMap.Entry) preparedResult;
- preparedFeature = entry.getEStructuralFeature();
- preparedResult = entry.getValue();
- }
- prepared = 3;
- return true;
- }
- }
- }
- }
- };
+ return NonLoadingEContentsEList.create(eObject, false);
}
/*

Back to the top