Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent HEMERY2022-02-13 05:27:24 +0000
committerEike Stepper2022-02-13 05:27:24 +0000
commit6e493a513a099071d55499eb1cc18f234eece770 (patch)
tree3aa4fa333326e71f35ed667b5e957e22bf85402e /plugins
parent4c41e257ac85696b079b4eb9fe3602ab14a9ff5e (diff)
downloadcdo-6e493a513a099071d55499eb1cc18f234eece770.tar.gz
cdo-6e493a513a099071d55499eb1cc18f234eece770.tar.xz
cdo-6e493a513a099071d55499eb1cc18f234eece770.zip
[578675] CDOResourceFolderImpl#addTextResource and CDOResourceFolderImpl#addBinaryResource not implemented
Implementation similar to addResource, but with correct resource kind. https://bugs.eclipse.org/bugs/show_bug.cgi?id=578675 Signed-off-by: Vincent HEMERY <vincent.hemery@csgroup.eu> Change-Id: I4d463dea8b2ebaac7d5eb6ef0e97dacaa8ea9911
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFolderImpl.java34
1 files changed, 23 insertions, 11 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 4f0fdc9ff5..111c0f9c2c 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
@@ -20,6 +20,7 @@ import org.eclipse.emf.cdo.eresource.CDOResourceNode;
import org.eclipse.emf.cdo.eresource.CDOTextResource;
import org.eclipse.emf.cdo.eresource.EresourcePackage;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.emf.cdo.util.CDOURIUtil;
import org.eclipse.net4j.util.ObjectUtil;
@@ -34,6 +35,7 @@ import org.eclipse.emf.spi.cdo.InternalCDOView;
import java.io.IOException;
import java.util.Map;
+import java.util.function.BiFunction;
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>CDO Resource Folder</b></em>'.
@@ -177,6 +179,21 @@ public class CDOResourceFolderImpl extends CDOResourceNodeImpl implements CDORes
return null;
}
+ private <T extends CDOResourceNode> T addNode(String name, BiFunction<CDOTransaction, String, T> creator)
+ {
+ StringBuilder path = new StringBuilder(getPath());
+
+ if (!name.startsWith(CDOURIUtil.SEGMENT_SEPARATOR))
+ {
+ path.append(CDOURIUtil.SEGMENT_SEPARATOR);
+ }
+
+ path.append(name);
+
+ InternalCDOTransaction transaction = cdoView().toTransaction();
+ return creator.apply(transaction, path.toString());
+ }
+
/**
* <!-- begin-user-doc -->
* @since 4.0
@@ -186,7 +203,7 @@ public class CDOResourceFolderImpl extends CDOResourceNodeImpl implements CDORes
@Override
public CDOResourceFolder addResourceFolder(String name)
{
- return cdoView().toTransaction().createResourceFolder(getPath() + CDOURIUtil.SEGMENT_SEPARATOR + name);
+ return addNode(name, (transaction, path) -> transaction.createResourceFolder(path));
}
/**
@@ -198,36 +215,31 @@ public class CDOResourceFolderImpl extends CDOResourceNodeImpl implements CDORes
@Override
public CDOResource addResource(String name)
{
- InternalCDOTransaction transaction = cdoView().toTransaction();
- return transaction.createResource(getPath() + CDOURIUtil.SEGMENT_SEPARATOR + name);
+ return addNode(name, (transaction, path) -> transaction.createResource(path));
}
/**
* <!-- begin-user-doc -->
* @since 4.2
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public CDOTextResource addTextResource(String name)
{
- // TODO: implement this method
- // Ensure that you remove @generated or mark it @generated NOT
- throw new UnsupportedOperationException();
+ return addNode(name, (transaction, path) -> transaction.createTextResource(path));
}
/**
* <!-- begin-user-doc -->
* @since 4.2
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public CDOBinaryResource addBinaryResource(String name)
{
- // TODO: implement this method
- // Ensure that you remove @generated or mark it @generated NOT
- throw new UnsupportedOperationException();
+ return addNode(name, (transaction, path) -> transaction.createBinaryResource(path));
}
/**

Back to the top