Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFolderImpl.java')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFolderImpl.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFolderImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFolderImpl.java
index 983c5b607e..68dc0397af 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFolderImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFolderImpl.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.eresource.impl;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.revision.CDOList;
+import org.eclipse.emf.cdo.common.util.CDODuplicateResourceException;
import org.eclipse.emf.cdo.eresource.CDOBinaryResource;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
@@ -21,15 +22,21 @@ import org.eclipse.emf.cdo.eresource.EresourcePackage;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
import org.eclipse.emf.cdo.util.CDOURIUtil;
+import org.eclipse.emf.internal.cdo.messages.Messages;
+
import org.eclipse.net4j.util.ObjectUtil;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.EStoreEObjectImpl;
import org.eclipse.emf.spi.cdo.FSMUtil;
import org.eclipse.emf.spi.cdo.InternalCDOTransaction;
import org.eclipse.emf.spi.cdo.InternalCDOView;
import java.io.IOException;
+import java.text.MessageFormat;
+import java.util.Iterator;
import java.util.Map;
/**
@@ -120,6 +127,37 @@ public class CDOResourceFolderImpl extends CDOResourceNodeImpl implements CDORes
}
}
+ @Override
+ protected EList<?> createList(EStructuralFeature eStructuralFeature) throws CDODuplicateResourceException
+ {
+ if (eStructuralFeature == EresourcePackage.Literals.CDO_RESOURCE_FOLDER__NODES)
+ {
+ return new EStoreEObjectImpl.BasicEStoreEList<CDOResourceNode>(this, eStructuralFeature)
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected CDOResourceNode validate(int index, CDOResourceNode newNode)
+ {
+ String newName = newNode.getName();
+
+ for (Iterator<CDOResourceNode> it = iterator(); it.hasNext();)
+ {
+ CDOResourceNode existingNode = it.next();
+ if (ObjectUtil.equals(existingNode.getName(), newName))
+ {
+ throw new CDODuplicateResourceException(MessageFormat.format(Messages.getString("CDOResourceNodeImpl.5"), existingNode.getPath())); //$NON-NLS-1$
+ }
+ }
+
+ return super.validate(index, newNode);
+ }
+ };
+ }
+
+ return super.createList(eStructuralFeature);
+ }
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->

Back to the top