From e31cc39df1a993a08f7b03082adddb19d77bb7b4 Mon Sep 17 00:00:00 2001
From: Stefan Herrnleben <s.herrnleben@syslex.de>
Date: Wed, 26 Jul 2017 00:07:55 +0200
Subject: [PATCH] add method to clone dni model

---
 .../dni/dnimm3/tools/ParserTest.java          | 25 +++++------------
 .../descartes/dni/dnimm3/tools/UtilTest.java  | 27 +++++++++++++++++++
 .../{DniApParser.java => DNIAPParser.java}    | 10 +++----
 .../dni/dnimm3ap/tools/DNIAPUtil.java         | 17 ++++++++++++
 .../dni/dnimm3/tools/ParserTest.java          | 10 +++----
 .../descartes/dni/dnimm3/tools/UtilTest.java  | 24 +++++++++++++++++
 .../tools/{DniParser.java => DNIParser.java}  |  5 +++-
 .../descartes/dni/dnimm3/tools/DNIUtil.java   | 17 ++++++++++++
 8 files changed, 104 insertions(+), 31 deletions(-)
 create mode 100644 tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
 rename tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/{DniApParser.java => DNIAPParser.java} (93%)
 create mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPUtil.java
 create mode 100644 tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
 rename tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/{DniParser.java => DNIParser.java} (98%)
 create mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIUtil.java

diff --git a/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java b/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
index f5604197..301c017b 100644
--- a/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
+++ b/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
@@ -12,21 +12,21 @@ import org.junit.Test;
 import tools.descartes.dni.dnimm3ap.AdaptationPoints;
 import tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl;
 import tools.descartes.dni.dnimm3ap.impl.DNIAPFactoryImpl;
-import tools.descartes.dni.dnimm3ap.tools.DniApParser;
+import tools.descartes.dni.dnimm3ap.tools.DNIAPParser;
 
 public class ParserTest {
 
 	@Test
 	public void shouldConvertFileToModel() {
 		File file = new File("resources-test/scenario0B.dniap");
-		AdaptationPointsImpl adaptationPoints = DniApParser.convertToModel(file);
+		AdaptationPointsImpl adaptationPoints = DNIAPParser.convertToModel(file);
 		Assert.assertTrue(adaptationPoints.getRepositories().getNodes().size() > 0);
 	}
 
 	@Test
 	public void shouldConvertFileToModelWithNetworkStructure() {
 		File file = new File("resources-test/scenario0B.dniap");
-		AdaptationPointsImpl adaptationPoints = DniApParser.convertToModel(file);
+		AdaptationPointsImpl adaptationPoints = DNIAPParser.convertToModel(file);
 		Assert.assertEquals(6, adaptationPoints.getNetworkInfrastructure().getStructure().getNodes().size());
 	}
 
@@ -36,7 +36,7 @@ public class ParserTest {
 		AdaptationPoints model = factory.createAdaptationPoints();
 		File file = File.createTempFile("junit-dni-", ".dniap");
 		file.deleteOnExit();
-		DniApParser.writeToFile(model, file);
+		DNIAPParser.writeToFile(model, file);
 		Assert.assertTrue(file.length() > 100);
 	}
 
@@ -44,7 +44,7 @@ public class ParserTest {
 	public void shouldConvertModelToByteArray() throws IOException {
 		DNIAPFactoryImpl factory = new DNIAPFactoryImpl();
 		AdaptationPoints model = factory.createAdaptationPoints();
-		byte[] bytes = DniApParser.convertToByteArray(model);
+		byte[] bytes = DNIAPParser.convertToByteArray(model);
 		Assert.assertTrue(bytes.length > 10);
 	}
 
@@ -52,21 +52,8 @@ public class ParserTest {
 	public void shouldConvertByteArrayToModel() throws IOException {
 		Path path = Paths.get("resources-test/scenario0B.dniap");
 		byte[] data = Files.readAllBytes(path);
-		AdaptationPoints adaptationPoints = DniApParser.convertToModel(data);
+		AdaptationPoints adaptationPoints = DNIAPParser.convertToModel(data);
 		Assert.assertTrue(adaptationPoints.getRepositories().getNodes().size() > 0);
 	}
 
-	@Test
-	public void shouldCloneModel() {
-		File file = new File("resources-test/scenario0B.dniap");
-		AdaptationPointsImpl adaptationPoints1 = DniApParser.convertToModel(file);
-		AdaptationPointsImpl adaptationPoints2 = DniApParser.clone(adaptationPoints1);
-		Assert.assertNotEquals(adaptationPoints1, adaptationPoints2);
-		Assert.assertEquals(adaptationPoints1.getNetworkInfrastructure().getStructure().getNodes().size(),
-				adaptationPoints2.getNetworkInfrastructure().getStructure().getNodes().size());
-		Assert.assertEquals(
-				adaptationPoints1.getNetworkInfrastructure().getStructure().getNodes().get(0).getUid_generated(),
-				adaptationPoints2.getNetworkInfrastructure().getStructure().getNodes().get(0).getUid_generated());
-	}
-
 }
diff --git a/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java b/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
new file mode 100644
index 00000000..98c70dce
--- /dev/null
+++ b/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
@@ -0,0 +1,27 @@
+package tools.descartes.dni.dnimm3.tools;
+
+import java.io.File;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl;
+import tools.descartes.dni.dnimm3ap.tools.DNIAPParser;
+import tools.descartes.dni.dnimm3ap.tools.DNIAPUtil;
+
+public class UtilTest {
+
+	@Test
+	public void shouldCloneModel() {
+		File file = new File("resources-test/scenario0B.dniap");
+		AdaptationPointsImpl adaptationPoints1 = DNIAPParser.convertToModel(file);
+		AdaptationPointsImpl adaptationPoints2 = DNIAPUtil.cloneModel(adaptationPoints1);
+		Assert.assertNotEquals(adaptationPoints1, adaptationPoints2);
+		Assert.assertEquals(adaptationPoints1.getNetworkInfrastructure().getStructure().getNodes().size(),
+				adaptationPoints2.getNetworkInfrastructure().getStructure().getNodes().size());
+		Assert.assertEquals(
+				adaptationPoints1.getNetworkInfrastructure().getStructure().getNodes().get(0).getUid_generated(),
+				adaptationPoints2.getNetworkInfrastructure().getStructure().getNodes().get(0).getUid_generated());
+	}
+
+}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DniApParser.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPParser.java
similarity index 93%
rename from tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DniApParser.java
rename to tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPParser.java
index 0d6bd174..d82b415f 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DniApParser.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPParser.java
@@ -10,14 +10,16 @@ import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
 
 import tools.descartes.dni.dnimm3ap.AdaptationPoints;
 import tools.descartes.dni.dnimm3ap.DNIAPPackage;
 import tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl;
 
-public class DniApParser {
+public class DNIAPParser {
+
+	private DNIAPParser() {
+	}
 
 	public static AdaptationPointsImpl convertToModel(File file) {
 		ResourceSet resourceSet = new ResourceSetImpl();
@@ -60,8 +62,4 @@ public class DniApParser {
 		resource.save(Collections.EMPTY_MAP);
 	}
 
-	public static AdaptationPointsImpl clone(AdaptationPoints adaptationPoints) {
-		return (AdaptationPointsImpl) EcoreUtil.copy(adaptationPoints);
-	}
-
 }
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPUtil.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPUtil.java
new file mode 100644
index 00000000..fafaaaf3
--- /dev/null
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPUtil.java
@@ -0,0 +1,17 @@
+package tools.descartes.dni.dnimm3ap.tools;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import tools.descartes.dni.dnimm3ap.AdaptationPoints;
+import tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl;
+
+public class DNIAPUtil {
+
+	private DNIAPUtil() {
+	}
+
+	public static AdaptationPointsImpl cloneModel(AdaptationPoints adaptationPoints) {
+		return (AdaptationPointsImpl) EcoreUtil.copy(adaptationPoints);
+	}
+
+}
diff --git a/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java b/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
index 2844ddea..0c8d9eac 100644
--- a/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
+++ b/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
@@ -18,14 +18,14 @@ public class ParserTest {
 	@Test
 	public void shouldConvertFileToModel() {
 		File file = new File("resources-test/scenario0A.dni");
-		NetworkInfrastructureImpl networkInfrastructure = DniParser.convertToModel(file);
+		NetworkInfrastructureImpl networkInfrastructure = DNIParser.convertToModel(file);
 		Assert.assertEquals(6, networkInfrastructure.getStructure().getNodes().size());
 	}
 
 	@Test
 	public void shouldConvertFileWithAdaptationToModel() {
 		File file = new File("resources-test/scenario0B.dni");
-		NetworkInfrastructureImpl networkInfrastructure = DniParser.convertToModel(file);
+		NetworkInfrastructureImpl networkInfrastructure = DNIParser.convertToModel(file);
 		Assert.assertEquals(6, networkInfrastructure.getStructure().getNodes().size());
 	}
 
@@ -35,7 +35,7 @@ public class ParserTest {
 		NetworkInfrastructure model = factory.createNetworkInfrastructure();
 		File file = File.createTempFile("junit-dni-", ".dni");
 		file.deleteOnExit();
-		DniParser.writeToFile(model, file);
+		DNIParser.writeToFile(model, file);
 		Assert.assertTrue(file.length() > 100);
 	}
 
@@ -43,7 +43,7 @@ public class ParserTest {
 	public void shouldConvertModelToByteArray() throws IOException {
 		DNIFactoryImpl factory = new DNIFactoryImpl();
 		NetworkInfrastructure model = factory.createNetworkInfrastructure();
-		byte[] bytes = DniParser.convertToByteArray(model);
+		byte[] bytes = DNIParser.convertToByteArray(model);
 		Assert.assertTrue(bytes.length > 100);
 	}
 
@@ -51,7 +51,7 @@ public class ParserTest {
 	public void shouldConvertByteArrayToModel() throws IOException {
 		Path path = Paths.get("resources-test/scenario0A.dni");
 		byte[] data = Files.readAllBytes(path);
-		NetworkInfrastructureImpl networkInfrastructure = DniParser.convertToModel(data);
+		NetworkInfrastructureImpl networkInfrastructure = DNIParser.convertToModel(data);
 		Assert.assertEquals(6, networkInfrastructure.getStructure().getNodes().size());
 	}
 
diff --git a/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java b/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
new file mode 100644
index 00000000..120bda93
--- /dev/null
+++ b/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
@@ -0,0 +1,24 @@
+package tools.descartes.dni.dnimm3.tools;
+
+import java.io.File;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl;
+
+public class UtilTest {
+
+	@Test
+	public void shouldCloneModel() {
+		File file = new File("resources-test/scenario0B.dni");
+		NetworkInfrastructureImpl networkInfrastructure1 = DNIParser.convertToModel(file);
+		NetworkInfrastructureImpl networkInfrastructure2 = DNIUtil.cloneModel(networkInfrastructure1);
+		Assert.assertNotEquals(networkInfrastructure1, networkInfrastructure2);
+		Assert.assertEquals(networkInfrastructure1.getStructure().getNodes().size(),
+				networkInfrastructure2.getStructure().getNodes().size());
+		Assert.assertEquals(networkInfrastructure1.getStructure().getNodes().get(0).getUid_generated(),
+				networkInfrastructure2.getStructure().getNodes().get(0).getUid_generated());
+	}
+
+}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DniParser.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIParser.java
similarity index 98%
rename from tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DniParser.java
rename to tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIParser.java
index 510d2ba6..8486cde1 100644
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DniParser.java
+++ b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIParser.java
@@ -16,7 +16,10 @@ import tools.descartes.dni.dnimm3.DNIPackage;
 import tools.descartes.dni.dnimm3.NetworkInfrastructure;
 import tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl;
 
-public class DniParser {
+public class DNIParser {
+	
+	private DNIParser() {
+	}
 
 	public static NetworkInfrastructureImpl convertToModel(File file) {
 		ResourceSet resourceSet = new ResourceSetImpl();
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIUtil.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIUtil.java
new file mode 100644
index 00000000..b6032cb2
--- /dev/null
+++ b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIUtil.java
@@ -0,0 +1,17 @@
+package tools.descartes.dni.dnimm3.tools;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import tools.descartes.dni.dnimm3.NetworkInfrastructure;
+import tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl;
+
+public class DNIUtil {
+
+	private DNIUtil() {
+	}
+
+	public static NetworkInfrastructureImpl cloneModel(NetworkInfrastructure networkInfrastructure) {
+		return (NetworkInfrastructureImpl) EcoreUtil.copy(networkInfrastructure);
+	}
+
+}
-- 
GitLab