diff options
author | Vincent HEMERY | 2022-02-13 05:27:24 +0000 |
---|---|---|
committer | Eike Stepper | 2022-02-13 05:27:24 +0000 |
commit | 6e493a513a099071d55499eb1cc18f234eece770 (patch) | |
tree | 3aa4fa333326e71f35ed667b5e957e22bf85402e /plugins/org.eclipse.emf.cdo/src/org/eclipse | |
parent | 4c41e257ac85696b079b4eb9fe3602ab14a9ff5e (diff) | |
download | cdo-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/org.eclipse.emf.cdo/src/org/eclipse')
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFolderImpl.java | 34 |
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)); } /** |