Bug 568432 - [PrivacyDesigner] add req feature

Change-Id: Ibb746c08c75fc5eb12265fec30e2a35d5816ca42
diff --git a/feature/org.eclipse.papyrus.pdp4eng.req.feature/.project b/feature/org.eclipse.papyrus.pdp4eng.req.feature/.project
new file mode 100644
index 0000000..8b3c03e
--- /dev/null
+++ b/feature/org.eclipse.papyrus.pdp4eng.req.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.pdp4eng.req.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/feature/org.eclipse.papyrus.pdp4eng.req.feature/build.properties b/feature/org.eclipse.papyrus.pdp4eng.req.feature/build.properties
new file mode 100644
index 0000000..b3a611b
--- /dev/null
+++ b/feature/org.eclipse.papyrus.pdp4eng.req.feature/build.properties
@@ -0,0 +1,2 @@
+bin.includes = feature.xml,\
+               feature.properties
diff --git a/feature/org.eclipse.papyrus.pdp4eng.req.feature/feature.properties b/feature/org.eclipse.papyrus.pdp4eng.req.feature/feature.properties
new file mode 100644
index 0000000..acbe222
--- /dev/null
+++ b/feature/org.eclipse.papyrus.pdp4eng.req.feature/feature.properties
@@ -0,0 +1,30 @@
+###############################################################################
+# Copyright (c) 2012, 2016 CEA LIST, Christian W. Damus, and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+
+# "featureName" property - name of the feature
+featureName=PDP4Eng Requirement feature
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse Modeling Project 
+
+# description property - text of the "Feature Description"
+description=This feature regroups all functions about GDPR requirements
+################ end of description property ##################################
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2020 CEA LIST.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License 2.0\n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/\n\
+\n\
+SPDX-License-Identifier: EPL-2.0\n
+################ end of copyright property ####################################
diff --git a/feature/org.eclipse.papyrus.pdp4eng.req.feature/feature.xml b/feature/org.eclipse.papyrus.pdp4eng.req.feature/feature.xml
new file mode 100644
index 0000000..624863a
--- /dev/null
+++ b/feature/org.eclipse.papyrus.pdp4eng.req.feature/feature.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.papyrus.pdp4eng.req.feature"
+      label="%featureName"
+      version="1.0.0.qualifier"
+      provider-name="%providerName"
+      license-feature="org.eclipse.license"
+      license-feature-version="2.0.2">
+
+   <description url="https://eclipse.org/papyrus/">
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <requires>
+      <import feature="org.eclipse.papyrus.pdp4eng.common.feature" version="1.0.0.qualifier"/>
+   </requires>
+
+   <plugin
+         id="org.eclipse.papyrus.pdp4eng.req.gdprananalysis"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.papyrus.pdp4eng.req.metareq"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.papyrus.pdp4eng.req.profile"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.papyrus.pdp4eng.req.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/feature/org.eclipse.papyrus.pdp4eng.req.feature/pom.xml b/feature/org.eclipse.papyrus.pdp4eng.req.feature/pom.xml
new file mode 100644
index 0000000..e78eba4
--- /dev/null
+++ b/feature/org.eclipse.papyrus.pdp4eng.req.feature/pom.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.papyrus.pdp4eng</groupId>
+		<artifactId>org.eclipse.papyrus.pdp4eng.feature</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.papyrus.pdp4eng.req.feature</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>eclipse-feature</packaging>
+
+	<name>pdp4eng req feature</name>
+	<description>pdp4eng req feature</description>
+</project>
\ No newline at end of file
diff --git a/feature/pom.xml b/feature/pom.xml
index 4d380f1..dd39239 100644
--- a/feature/pom.xml
+++ b/feature/pom.xml
@@ -18,7 +18,7 @@
 
 	<modules>
 		<module>org.eclipse.papyrus.pdp4eng.common.feature</module>
-		<!--module>org.eclipse.papyrus.pdp4eng.req.feature</module>
-		<module>org.eclipse.papyrus.pdp4eng.designer.feature</module-->
+		<module>org.eclipse.papyrus.pdp4eng.req.feature</module>
+		<!--module>org.eclipse.papyrus.pdp4eng.designer.feature</module-->
 	</modules>
 </project>
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 844a15a..bdff513 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -18,8 +18,8 @@
 
 	<modules>
 		<module>common</module>
-		<!--module>req</module>
-		<module>design</module-->
+		<module>req</module>
+		<!--module>design</module-->
 	</modules>
 
 </project>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/.classpath b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/.project b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/.project
new file mode 100644
index 0000000..11c0196
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.pdp4eng.req.gdprananalysis</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/.settings/org.eclipse.jdt.core.prefs b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/META-INF/MANIFEST.MF b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a14cd0e
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.pdp4eng.req.gdprananalysis;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %providerName
+Automatic-Module-Name: org.eclipse.papyrus.pdp4eng.req.gdprananalysis
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.papyrus.requirements.sysml14.assistant.commands;bundle-version="[0.8.0,1.0.0)",
+ org.eclipse.papyrus.requirements.sysml14.common;bundle-version="[0.7.0,1.0.0)",
+ org.eclipse.emf.transaction;bundle-version="[1.9.1,2.0.0)",
+ org.eclipse.uml2.uml;bundle-version="[5.4.0,6.0.0)",
+ org.eclipse.papyrus.pdp4eng.req.profile;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.papyrus.sysml14;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.papyrus.pdp4eng.req.metareq;bundle-version="[1.0.0,2.0.0)"
+Export-Package: org.eclipse.papyrus.pdp4eng.req.gdprananalysis.api
+Bundle-ActivationPolicy: lazy
+Bundle-Localization: plugin
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/about.html b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/about.html
new file mode 100644
index 0000000..3e183aa
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>November 30, 2017</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/build.properties b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/build.properties
new file mode 100644
index 0000000..597a1cc
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               build.properties
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/plugin.properties b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/plugin.properties
new file mode 100644
index 0000000..8adf35d
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/plugin.properties
@@ -0,0 +1,16 @@
+#################################################################################
+# Copyright (c) 2020 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Patrick Tessier - initial API and implementation
+#	  Gabriel Pedroza - initial API and implementation
+##################################################################################
+
+pluginName = pdp4eng Req GDPR analysis
+providerName = Eclipse Modeling Project
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/pom.xml b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/pom.xml
new file mode 100644
index 0000000..3957aa6
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
+	<parent>
+		<groupId>org.eclipse.papyrus.pdp4eng</groupId>
+		<artifactId>org.eclipse.papyrus.pdp4eng.plugins.req.artifact</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.papyrus.pdp4eng.req.gdprananalysis</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+	
+</project>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/papyrus/pdp4eng/req/gdprananalysis/api/IRequirementGenerator.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/papyrus/pdp4eng/req/gdprananalysis/api/IRequirementGenerator.java
new file mode 100644
index 0000000..3f6bb7f
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/papyrus/pdp4eng/req/gdprananalysis/api/IRequirementGenerator.java
@@ -0,0 +1,38 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.papyrus.pdp4eng.req.gdprananalysis.api;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+
+/**
+ * Declaration of this interface to create requirement
+ *
+ */
+public interface IRequirementGenerator {
+/**
+ *  Create a requirement
+ * @param domain
+ * @param owner
+ * @return
+ */
+	public Command generateArticle51a(TransactionalEditingDomain domain, org.eclipse.uml2.uml.Package owner);
+	public Command generateArticle51b(TransactionalEditingDomain domain, org.eclipse.uml2.uml.Package owner);
+	public Command generateArticle51c(TransactionalEditingDomain domain, org.eclipse.uml2.uml.Package owner);
+	public Command generateArticle51d(TransactionalEditingDomain domain, org.eclipse.uml2.uml.Package owner);
+	public Command generateArticle51e(TransactionalEditingDomain domain, org.eclipse.uml2.uml.Package owner);
+	public Command generateArticle51f(TransactionalEditingDomain domain, org.eclipse.uml2.uml.Package owner);
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/papyrus/pdp4eng/req/gdprananalysis/api/RequirementGenerator.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/papyrus/pdp4eng/req/gdprananalysis/api/RequirementGenerator.java
new file mode 100644
index 0000000..759d08d
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/papyrus/pdp4eng/req/gdprananalysis/api/RequirementGenerator.java
@@ -0,0 +1,59 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.papyrus.pdp4eng.req.gdprananalysis.api;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.pdp4eng.req.gdprananalysis.internal.RequirementTestGeneratorImpl;
+import org.eclipse.uml2.uml.Package;
+
+
+/**this is a public API to create Requirement**/
+public class RequirementGenerator implements IRequirementGenerator {
+	private RequirementTestGeneratorImpl generatorImpl= new RequirementTestGeneratorImpl();
+
+
+	@Override
+	public Command generateArticle51a(TransactionalEditingDomain domain, Package owner) {
+		return generatorImpl.generateArticle51a(domain, owner);
+	}
+
+	@Override
+	public Command generateArticle51b(TransactionalEditingDomain domain, Package owner) {
+		return generatorImpl.generateArticle51b(domain, owner);
+	}
+
+	@Override
+	public Command generateArticle51c(TransactionalEditingDomain domain, Package owner) {
+		return generatorImpl.generateArticle51c(domain, owner);
+	}
+	
+	@Override
+	public Command generateArticle51d(TransactionalEditingDomain domain, Package owner) {
+		return generatorImpl.generateArticle51d(domain, owner);
+	}
+	public Command generateArticle51f(TransactionalEditingDomain domain, Package owner) {
+		return generatorImpl.generateArticle51f(domain, owner);
+	}
+
+	@Override
+	public Command generateArticle51e(TransactionalEditingDomain domain, Package owner) {
+		return generatorImpl.generateArticle51e(domain, owner);
+	}
+
+	
+
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/AccuracyCreateCommand.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/AccuracyCreateCommand.java
new file mode 100644
index 0000000..8187877
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/AccuracyCreateCommand.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal;
+
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are the property of the CEA. 
+ * Any use is subject to specific agreement with the CEA.
+ * Contributors:
+ * 
+ * 		Patrick Tessier (CEA LIST) - Initial API and implementation
+ * 
+ */
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Purpose;
+import org.eclipse.papyrus.pdp4eng.req.metareq.GDPRRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+public class AccuracyCreateCommand extends BasicRequirementCreateCommand {
+
+	private PersonalData personalData;
+	private Purpose purpose;
+	public AccuracyCreateCommand(TransactionalEditingDomain domain, Element owner, String id, String text,PersonalData personalData,Purpose purpose) {
+		super(domain, owner, id, text);
+		this.personalData= personalData;
+		this.purpose= purpose;
+	}
+
+	@Override
+	protected void createRequirement(Package owner, String id, String text) {
+		super.createRequirement(owner, id, text);
+		if( requirement!=null) {
+			StereotypeApplicationHelper stereotypeApplicationHelper = StereotypeApplicationHelper.getInstance(null);
+			stereotypeApplicationHelper.applyStereotype(requirement,pdp4engReqGDPRPackage.eINSTANCE.getAccuracy(),null );
+			org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy accuracy=(org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy)UMLUtil.getStereotypeApplication(requirement, org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy.class);
+			accuracy.setPersonalData(personalData);
+			accuracy.setPurpose(purpose);
+			GDPRRequirements gdprRrequiement= new GDPRRequirements();
+			Requirement reqStereotypeAppli= (Requirement)UMLUtil.getStereotypeApplication(requirement, Requirement.class);
+			reqStereotypeAppli.setText(""+gdprRrequiement.getDescriptionForAccurate(accuracy));
+		}
+
+
+	}
+
+	
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/BasicRequirementCreateCommand.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/BasicRequirementCreateCommand.java
new file mode 100644
index 0000000..ce68bee
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/BasicRequirementCreateCommand.java
@@ -0,0 +1,75 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal;
+
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.requirements.sysml14.common.I_SysMLStereotype;
+import org.eclipse.papyrus.requirements.sysml14.common.Utils;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Stereotype;
+
+/**
+ * Creates a new based on the options chosen in the Papyrus Req preferences page.
+ *
+ */
+public class BasicRequirementCreateCommand extends RecordingCommand {
+	protected Element owner;
+	private String id;
+	private String text;
+	protected org.eclipse.uml2.uml.Class requirement;
+
+	/**
+	 * 
+	 * Constructor.
+	 *
+	 * @param domain
+	 * @param owner never null
+	 * @param id can be null, in this case it is generated
+	 * @param text can be null
+	 */
+	public BasicRequirementCreateCommand(TransactionalEditingDomain domain, Element owner, String id,String text) {
+		super(domain, "PapyrusReqSysMLRequirementCreateCommand");
+		this.owner = owner;
+		this.id = id;
+		this.text = text;
+	}
+
+	protected  void createRequirement(org.eclipse.uml2.uml.Package owner, String id,String text) {
+		requirement = owner.createOwnedClass("tmpName", false);
+		Stereotype reqStereotype = requirement.getApplicableStereotype(I_SysMLStereotype.REQUIREMENT_STEREOTYPE);
+		requirement.applyStereotype(reqStereotype);
+		if( id==null) {
+			id = Utils.getNewRequirementID(owner);
+		}
+		requirement.setName(id);
+		requirement.setValue(reqStereotype, I_SysMLStereotype.REQUIREMENT_ID_ATT, id);
+
+		if( text!=null) {
+			requirement.setValue(reqStereotype, I_SysMLStereotype.REQUIREMENT_TEXT_ATT, text);
+		}
+	}
+
+	@Override
+	protected void doExecute() {
+		if (owner instanceof Package) {
+			createRequirement((Package) owner, id, text);
+		} else if (owner.getNearestPackage() != null) {
+			createRequirement(owner.getNearestPackage(), id, text);
+		}
+	}
+}
\ No newline at end of file
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/DataMinimizationCreateCommand.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/DataMinimizationCreateCommand.java
new file mode 100644
index 0000000..60baf98
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/DataMinimizationCreateCommand.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal; 
+
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are the property of the CEA. 
+ * Any use is subject to specific agreement with the CEA.
+ * Contributors:
+ * 
+ * 		Patrick Tessier (CEA LIST) - Initial API and implementation
+ * 
+ */
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Purpose;
+import org.eclipse.papyrus.pdp4eng.req.metareq.GDPRRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+public class DataMinimizationCreateCommand extends BasicRequirementCreateCommand {
+
+	private PersonalData personalData;
+	private Purpose purpose;
+	public DataMinimizationCreateCommand(TransactionalEditingDomain domain, Element owner, String id, String text,PersonalData personalData,Purpose purpose) {
+		super(domain, owner, id, text);
+		this.personalData= personalData;
+		this.purpose= purpose;
+	}
+
+	@Override
+	protected void createRequirement(Package owner, String id, String text) {
+		super.createRequirement(owner, id, text);
+		if( requirement!=null) {
+			StereotypeApplicationHelper stereotypeApplicationHelper = StereotypeApplicationHelper.getInstance(null);
+			stereotypeApplicationHelper.applyStereotype(requirement,pdp4engReqGDPRPackage.eINSTANCE.getDataMinimisation(),null );
+			org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation dataMinimization=(org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation)UMLUtil.getStereotypeApplication(requirement, org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation.class);
+			dataMinimization.setPersonalData(personalData);
+			dataMinimization.setPurpose(purpose);
+			GDPRRequirements gdprRrequiement= new GDPRRequirements();
+			Requirement reqStereotypeAppli= (Requirement)UMLUtil.getStereotypeApplication(requirement, Requirement.class);
+			reqStereotypeAppli.setText(""+gdprRrequiement.getDescriptionForDataMinimisation(dataMinimization));
+		}
+
+
+	}
+
+	
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/FairlyRequirementCreateCommand.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/FairlyRequirementCreateCommand.java
new file mode 100644
index 0000000..6e268a0
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/FairlyRequirementCreateCommand.java
@@ -0,0 +1,76 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal;
+
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are the property of the CEA. 
+ * Any use is subject to specific agreement with the CEA.
+ * Contributors:
+ * 
+ * 		Patrick Tessier (CEA LIST) - Initial API and implementation
+ * 
+ */
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.req.metareq.GDPRRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement;
+
+public class FairlyRequirementCreateCommand extends BasicRequirementCreateCommand {
+
+	private ProcessRequirement processRequirement;
+	private DataSubject dataSubject;
+	public FairlyRequirementCreateCommand(TransactionalEditingDomain domain, Element owner, String id, String text,ProcessRequirement processRequirement, DataSubject dataSubject) {
+		super(domain, owner, id, text);
+		this.processRequirement= processRequirement;
+		this.dataSubject= dataSubject;
+	}
+
+	@Override
+	protected void createRequirement(Package owner, String id, String text) {
+		super.createRequirement(owner, id, text);
+		if( requirement!=null) {
+			StereotypeApplicationHelper stereotypeApplicationHelper = StereotypeApplicationHelper.getInstance(null);
+			stereotypeApplicationHelper.applyStereotype(requirement,pdp4engReqGDPRPackage.eINSTANCE.getFairly(),null );
+			org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly fairlyReq= (org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly)UMLUtil.getStereotypeApplication(requirement, org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly.class);
+			fairlyReq.setProcess(processRequirement);
+			for (PersonalData personalData : processRequirement.getPersonaldata()) {
+					fairlyReq.getPersonalData().add((PersonalDataRequirement) personalData);
+			}
+			fairlyReq.setDataSubject(this.dataSubject);
+			GDPRRequirements gdprRrequiement= new GDPRRequirements();
+			Requirement reqStereotypeAppli= (Requirement)UMLUtil.getStereotypeApplication(requirement, Requirement.class);
+			reqStereotypeAppli.setText(""+gdprRrequiement.getDescriptionForFairlyRequirement(fairlyReq));
+			
+
+		}
+
+
+	}
+
+	
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/LawfulRequirementCreateCommand.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/LawfulRequirementCreateCommand.java
new file mode 100644
index 0000000..c0f7e7b
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/LawfulRequirementCreateCommand.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal;
+
+import java.util.Iterator;
+
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are the property of the CEA. 
+ * Any use is subject to specific agreement with the CEA.
+ * Contributors:
+ * 
+ * 		Patrick Tessier (CEA LIST) - Initial API and implementation
+ * 
+ */
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Consent;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Purpose;
+import org.eclipse.papyrus.pdp4eng.req.metareq.GDPRRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement;
+
+public class LawfulRequirementCreateCommand extends BasicRequirementCreateCommand {
+
+	private ProcessRequirement processRequirement;
+	private DataSubject dataSubject;
+	public LawfulRequirementCreateCommand(TransactionalEditingDomain domain, Element owner, String id, String text,ProcessRequirement processRequirement, DataSubject dataSubject) {
+		super(domain, owner, id, text);
+		this.processRequirement= processRequirement;
+		this.dataSubject= dataSubject;
+	}
+
+	@Override
+	protected void createRequirement(Package owner, String id, String text) {
+		super.createRequirement(owner, id, text);
+		if( requirement!=null) {
+			StereotypeApplicationHelper stereotypeApplicationHelper = StereotypeApplicationHelper.getInstance(null);
+			stereotypeApplicationHelper.applyStereotype(requirement,pdp4engReqGDPRPackage.eINSTANCE.getLawful(),null );
+			org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful lawfulReq= (org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful)UMLUtil.getStereotypeApplication(requirement, org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful.class);
+			lawfulReq.setProcess(processRequirement);
+			for (PersonalData personalData : processRequirement.getPersonaldata()) {
+				lawfulReq.getPersonalData().add((PersonalDataRequirement) personalData);
+			}
+			lawfulReq.setDataSubject(this.dataSubject);
+			GDPRRequirements gdprRrequiement= new GDPRRequirements();
+			Requirement reqStereotypeAppli= (Requirement)UMLUtil.getStereotypeApplication(requirement, Requirement.class);
+			reqStereotypeAppli.setText(""+gdprRrequiement.getDescriptionForLawfulRequirement(lawfulReq));
+			
+			for (Iterator<Consent> iterator = dataSubject.getGivenConsent().iterator(); iterator.hasNext();) {
+				Consent aConsent = (Consent) iterator.next();
+				for (Iterator<Purpose> purposeIterator = aConsent.getPurpose().iterator(); purposeIterator.hasNext();) {
+					Purpose aPurpose = (Purpose) purposeIterator.next();
+					if( aPurpose.getProcesses().contains(this.processRequirement)) {
+						System.out.println("Create Lawfull BY CONSENT");
+						Class requirementClass=(Class)requirement.createNestedClassifier(reqStereotypeAppli.getId()+".1", UMLPackage.eINSTANCE.getClass_());
+						stereotypeApplicationHelper.applyStereotype(requirementClass,org.eclipse.papyrus.sysml14.requirements.RequirementsPackage.eINSTANCE.getRequirement(),null );
+						Requirement reqStereotype= (Requirement)UMLUtil.getStereotypeApplication(requirementClass, Requirement.class);
+						stereotypeApplicationHelper.applyStereotype(requirementClass,pdp4engReqGDPRPackage.eINSTANCE.getLawfulByConsent(),null );
+						org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent lawfulRbyConsent= (org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent)UMLUtil.getStereotypeApplication(requirementClass, org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent.class);
+						lawfulRbyConsent.setConsent(aConsent);
+						lawfulRbyConsent.setDataSubject(dataSubject);
+						lawfulRbyConsent.getPersonalData().addAll(lawfulReq.getPersonalData());
+						lawfulRbyConsent.setProcess(this.processRequirement);
+						reqStereotype.setText(""+gdprRrequiement.getDescriptionForLawfulByConsent(lawfulRbyConsent));
+						reqStereotype.setId(reqStereotypeAppli.getId()+".1");
+						
+						
+					}
+					
+				}
+				
+			}
+			
+			
+
+		}
+
+
+	}
+
+	
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/PurposeLimitationCreateCommand.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/PurposeLimitationCreateCommand.java
new file mode 100644
index 0000000..5d18511
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/PurposeLimitationCreateCommand.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal;
+
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are the property of the CEA. 
+ * Any use is subject to specific agreement with the CEA.
+ * Contributors:
+ * 
+ * 		Patrick Tessier (CEA LIST) - Initial API and implementation
+ * 
+ */
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Purpose;
+import org.eclipse.papyrus.pdp4eng.req.metareq.GDPRRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+public class PurposeLimitationCreateCommand extends BasicRequirementCreateCommand {
+
+	private PersonalData personalData;
+	private Purpose purpose;
+	public PurposeLimitationCreateCommand(TransactionalEditingDomain domain, Element owner, String id, String text,PersonalData personalData,Purpose purpose) {
+		super(domain, owner, id, text);
+		this.personalData= personalData;
+		this.purpose= purpose;
+	}
+
+	@Override
+	protected void createRequirement(Package owner, String id, String text) {
+		super.createRequirement(owner, id, text);
+		if( requirement!=null) {
+			StereotypeApplicationHelper stereotypeApplicationHelper = StereotypeApplicationHelper.getInstance(null);
+			stereotypeApplicationHelper.applyStereotype(requirement,pdp4engReqGDPRPackage.eINSTANCE.getPurposeLimitation(),null );
+			org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation purposeLimitation=(org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation)UMLUtil.getStereotypeApplication(requirement, org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation.class);
+			purposeLimitation.setPersonalData(personalData);
+			purposeLimitation.setPurpose(purpose);
+			GDPRRequirements gdprRrequiement= new GDPRRequirements();
+			Requirement reqStereotypeAppli= (Requirement)UMLUtil.getStereotypeApplication(requirement, Requirement.class);
+			reqStereotypeAppli.setText(""+gdprRrequiement.getDescriptionForPurposeLimitation(purposeLimitation));
+		}
+
+
+	}
+
+	
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/RequirementTestGeneratorImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/RequirementTestGeneratorImpl.java
new file mode 100644
index 0000000..ce721c0
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/RequirementTestGeneratorImpl.java
@@ -0,0 +1,234 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal;
+
+import java.util.HashSet;
+import java.util.Iterator;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CompoundCommand;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Purpose;
+import org.eclipse.papyrus.pdp4eng.req.gdprananalysis.api.IRequirementGenerator;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement;
+import org.eclipse.papyrus.requirements.sysml14.assistant.commands.api.RequirementCommandAssistantFactory;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * this is an implmentation fo create requirements
+ * {@link RequirementTestGenerator}
+ *
+ */
+public class RequirementTestGeneratorImpl implements IRequirementGenerator {
+
+	protected RequirementCommandAssistantFactory factory = new RequirementCommandAssistantFactory();
+	protected int index=0;
+	protected String prefix="GDPRReq-";
+	protected Package generatedRequirementPackage=null;
+
+	
+
+	@Override
+	public Command generateArticle51a(TransactionalEditingDomain domain, Package owner) {
+		CompoundCommand compoundCommand= new CompoundCommand();
+		Iterator<EObject> iterator=owner.eAllContents();
+
+		while (iterator.hasNext()) {
+			EObject eObject = (EObject) iterator.next();
+			if( eObject  instanceof NamedElement) {
+				NamedElement namedElement= (NamedElement)eObject;
+				ProcessRequirement processRequirement= (ProcessRequirement)UMLUtil.getStereotypeApplication(namedElement, ProcessRequirement.class);
+				if (processRequirement!=null) {
+					HashSet<DataSubject> dataSubjectList=new HashSet<>();
+					for (PersonalData personalData : processRequirement.getPersonaldata()) {
+						dataSubjectList.addAll(personalData.getRelatedTo());
+					}
+					for (DataSubject dataSubject : dataSubjectList) {
+						index++;
+						String id = prefix+index;
+						Command cmd=new LawfulRequirementCreateCommand(domain, lookForGeneratedrequirementPackage(owner), id, "",processRequirement, dataSubject);
+						compoundCommand.append(cmd);
+						index++;
+						id = prefix+index;
+						cmd=new FairlyRequirementCreateCommand(domain, lookForGeneratedrequirementPackage(owner), id, "",processRequirement, dataSubject);
+						compoundCommand.append(cmd);
+						index++;
+						id = prefix+index;
+						cmd=new TransparentRequirementCreateCommand(domain, lookForGeneratedrequirementPackage(owner), id, "",processRequirement, dataSubject);
+						compoundCommand.append(cmd);
+					}
+
+
+				}
+			}
+
+		}
+		return compoundCommand;
+	}
+
+	protected Package lookForGeneratedrequirementPackage(Package owner) {
+		Iterator<EObject> iterator=owner.eAllContents();
+		while (iterator.hasNext()) {
+			EObject eObject = (EObject) iterator.next();
+			if( eObject  instanceof Package) {
+				NamedElement namedElement= (NamedElement)eObject;
+				GeneratedRequirements generatedRequirements= (GeneratedRequirements)UMLUtil.getStereotypeApplication(namedElement, GeneratedRequirements.class);
+				if (generatedRequirements!=null) {
+					return (Package) namedElement;
+				}
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public Command generateArticle51b(TransactionalEditingDomain domain, Package owner) {
+		//purpose Limitation
+		CompoundCommand compoundCommand= new CompoundCommand();
+		Iterator<EObject> iterator=owner.eAllContents();
+
+		while (iterator.hasNext()) {
+			EObject eObject = (EObject) iterator.next();
+			if( eObject  instanceof NamedElement) {
+				NamedElement namedElement= (NamedElement)eObject;
+				PersonalData personalData= (PersonalData)UMLUtil.getStereotypeApplication(namedElement, PersonalData.class);
+				if (personalData!=null) {
+					for (org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Process processElement : personalData.getProcessedBy()) {
+						Purpose purpose=processElement.getContributedTo();
+						index++;
+						String id = prefix+index;
+						Command cmd=new PurposeLimitationCreateCommand(domain, lookForGeneratedrequirementPackage(owner), id, "",personalData, purpose);
+						compoundCommand.append(cmd);
+					}
+				}
+			}
+		}
+		return compoundCommand;
+	}
+
+	@Override
+	public Command generateArticle51d(TransactionalEditingDomain domain, Package owner) {
+		//accuracy
+		CompoundCommand compoundCommand= new CompoundCommand();
+		Iterator<EObject> iterator=owner.eAllContents();
+
+		while (iterator.hasNext()) {
+			EObject eObject = (EObject) iterator.next();
+			if( eObject  instanceof NamedElement) {
+				NamedElement namedElement= (NamedElement)eObject;
+				PersonalData personalData= (PersonalData)UMLUtil.getStereotypeApplication(namedElement, PersonalData.class);
+				if (personalData!=null) {
+					for (org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Process processElement : personalData.getProcessedBy()) {
+						Purpose purpose=processElement.getContributedTo();
+						index++;
+						String id = prefix+index;
+						Command cmd=new AccuracyCreateCommand(domain, lookForGeneratedrequirementPackage(owner), id, "",personalData, purpose);
+						compoundCommand.append(cmd);
+					}
+				}
+			}
+		}
+		return compoundCommand;
+	}
+
+	@Override
+	public Command generateArticle51e(TransactionalEditingDomain domain, Package owner) {
+		// storage limitation
+		CompoundCommand compoundCommand= new CompoundCommand();
+		Iterator<EObject> iterator=owner.eAllContents();
+
+		while (iterator.hasNext()) {
+			EObject eObject = (EObject) iterator.next();
+			if( eObject  instanceof NamedElement) {
+				NamedElement namedElement= (NamedElement)eObject;
+				PersonalData personalData= (PersonalData)UMLUtil.getStereotypeApplication(namedElement, PersonalData.class);
+				if (personalData!=null) {
+					for (org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Process processElement : personalData.getProcessedBy()) {
+						Purpose purpose=processElement.getContributedTo();
+						index++;
+						String id = prefix+index;
+						Command cmd=new StorageLimitationCreateCommand(domain, lookForGeneratedrequirementPackage(owner), id, "",personalData, purpose);
+						compoundCommand.append(cmd);
+					}
+				}
+			}
+		}
+		return compoundCommand;
+	}
+
+	@Override
+	public Command generateArticle51f(TransactionalEditingDomain domain, Package owner) {
+		// integrity confidentiality
+		CompoundCommand compoundCommand= new CompoundCommand();
+		Iterator<EObject> iterator=owner.eAllContents();
+
+		while (iterator.hasNext()) {
+			EObject eObject = (EObject) iterator.next();
+			if( eObject  instanceof NamedElement) {
+				NamedElement namedElement= (NamedElement)eObject;
+				ProcessRequirement processRequirement= (ProcessRequirement)UMLUtil.getStereotypeApplication(namedElement, ProcessRequirement.class);
+				if (processRequirement!=null) {
+					HashSet<DataSubject> dataSubjectList=new HashSet<>();
+					for (PersonalData personalData : processRequirement.getPersonaldata()) {
+						dataSubjectList.addAll(personalData.getRelatedTo());
+					}
+					for (DataSubject dataSubject : dataSubjectList) {
+						index++;
+						String id = prefix+index;
+						Command cmd=new SecuritySafetyRequirementCreateCommand(domain, lookForGeneratedrequirementPackage(owner), id, "",processRequirement, dataSubject);
+						compoundCommand.append(cmd);
+						
+					}
+
+
+				}
+			}
+
+		}
+		return compoundCommand;
+	}
+
+	@Override
+	public Command generateArticle51c(TransactionalEditingDomain domain, Package owner) {
+		// data minimisation
+		CompoundCommand compoundCommand= new CompoundCommand();
+		Iterator<EObject> iterator=owner.eAllContents();
+
+		while (iterator.hasNext()) {
+			EObject eObject = (EObject) iterator.next();
+			if( eObject  instanceof NamedElement) {
+				NamedElement namedElement= (NamedElement)eObject;
+				PersonalData personalData= (PersonalData)UMLUtil.getStereotypeApplication(namedElement, PersonalData.class);
+				if (personalData!=null) {
+					for (org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Process processElement : personalData.getProcessedBy()) {
+						Purpose purpose=processElement.getContributedTo();
+						index++;
+						String id = prefix+index;
+						Command cmd=new DataMinimizationCreateCommand(domain, lookForGeneratedrequirementPackage(owner), id, "",personalData, purpose);
+						compoundCommand.append(cmd);
+					}
+				}
+			}
+		}
+		return compoundCommand;
+	}
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/SecuritySafetyRequirementCreateCommand.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/SecuritySafetyRequirementCreateCommand.java
new file mode 100644
index 0000000..fd89a5a
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/SecuritySafetyRequirementCreateCommand.java
@@ -0,0 +1,76 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal;
+
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are the property of the CEA. 
+ * Any use is subject to specific agreement with the CEA.
+ * Contributors:
+ * 
+ * 		Patrick Tessier (CEA LIST) - Initial API and implementation
+ * 
+ */
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.req.metareq.GDPRRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement;
+
+public class SecuritySafetyRequirementCreateCommand extends BasicRequirementCreateCommand {
+
+	private ProcessRequirement processRequirement;
+	private DataSubject dataSubject;
+	public SecuritySafetyRequirementCreateCommand(TransactionalEditingDomain domain, Element owner, String id, String text,ProcessRequirement processRequirement, DataSubject dataSubject) {
+		super(domain, owner, id, text);
+		this.processRequirement= processRequirement;
+		this.dataSubject= dataSubject;
+	}
+
+	@Override
+	protected void createRequirement(Package owner, String id, String text) {
+		super.createRequirement(owner, id, text);
+		if( requirement!=null) {
+			StereotypeApplicationHelper stereotypeApplicationHelper = StereotypeApplicationHelper.getInstance(null);
+			stereotypeApplicationHelper.applyStereotype(requirement,pdp4engReqGDPRPackage.eINSTANCE.getSecuritySafety(),null );
+			org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety securitySafety= (org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety)UMLUtil.getStereotypeApplication(requirement, org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety.class);
+			securitySafety.setProcess(processRequirement);
+			for (PersonalData personalData : processRequirement.getPersonaldata()) {
+				securitySafety.getPersonalData().add((PersonalDataRequirement) personalData);
+			}
+			securitySafety.setDataSubject(this.dataSubject);
+			GDPRRequirements gdprRrequiement= new GDPRRequirements();
+			Requirement reqStereotypeAppli= (Requirement)UMLUtil.getStereotypeApplication(requirement, Requirement.class);
+			reqStereotypeAppli.setText(""+gdprRrequiement.getDescriptionForSecuritySafety(securitySafety));
+			
+
+		}
+
+
+	}
+
+	
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/StorageLimitationCreateCommand.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/StorageLimitationCreateCommand.java
new file mode 100644
index 0000000..ae21f51
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/StorageLimitationCreateCommand.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal;
+
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are the property of the CEA. 
+ * Any use is subject to specific agreement with the CEA.
+ * Contributors:
+ * 
+ * 		Patrick Tessier (CEA LIST) - Initial API and implementation
+ * 
+ */
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Purpose;
+import org.eclipse.papyrus.pdp4eng.req.metareq.GDPRRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+public class StorageLimitationCreateCommand extends BasicRequirementCreateCommand {
+
+	private PersonalData personalData;
+	private Purpose purpose;
+	public StorageLimitationCreateCommand(TransactionalEditingDomain domain, Element owner, String id, String text,PersonalData personalData,Purpose purpose) {
+		super(domain, owner, id, text);
+		this.personalData= personalData;
+		this.purpose= purpose;
+	}
+
+	@Override
+	protected void createRequirement(Package owner, String id, String text) {
+		super.createRequirement(owner, id, text);
+		if( requirement!=null) {
+			StereotypeApplicationHelper stereotypeApplicationHelper = StereotypeApplicationHelper.getInstance(null);
+			stereotypeApplicationHelper.applyStereotype(requirement,pdp4engReqGDPRPackage.eINSTANCE.getStorageLimitation(),null );
+			org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation storageLimitation=(org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation)UMLUtil.getStereotypeApplication(requirement, org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation.class);
+			storageLimitation.setPersonalData(personalData);
+			storageLimitation.setPurpose(purpose);
+			GDPRRequirements gdprRrequiement= new GDPRRequirements();
+			Requirement reqStereotypeAppli= (Requirement)UMLUtil.getStereotypeApplication(requirement, Requirement.class);
+			reqStereotypeAppli.setText(""+gdprRrequiement.getDescriptionForStorageLimitation(storageLimitation));
+		}
+
+
+	}
+
+	
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/TransparentRequirementCreateCommand.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/TransparentRequirementCreateCommand.java
new file mode 100644
index 0000000..630835a
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.gdprananalysis/src/org/eclipse/pdp4eng/req/gdprananalysis/internal/TransparentRequirementCreateCommand.java
@@ -0,0 +1,76 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.pdp4eng.req.gdprananalysis.internal;
+
+/**
+ * Copyright (c) 2019 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are the property of the CEA. 
+ * Any use is subject to specific agreement with the CEA.
+ * Contributors:
+ * 
+ * 		Patrick Tessier (CEA LIST) - Initial API and implementation
+ * 
+ */
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.req.metareq.GDPRRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+
+
+public class TransparentRequirementCreateCommand extends BasicRequirementCreateCommand {
+
+	private ProcessRequirement processRequirement;
+	private DataSubject dataSubject;
+	public TransparentRequirementCreateCommand(TransactionalEditingDomain domain, Element owner, String id, String text,ProcessRequirement processRequirement, DataSubject dataSubject) {
+		super(domain, owner, id, text);
+		this.processRequirement= processRequirement;
+		this.dataSubject= dataSubject;
+	}
+
+	@Override
+	protected void createRequirement(Package owner, String id, String text) {
+		super.createRequirement(owner, id, text);
+		if( requirement!=null) {
+			StereotypeApplicationHelper stereotypeApplicationHelper = StereotypeApplicationHelper.getInstance(null);
+			stereotypeApplicationHelper.applyStereotype(requirement,pdp4engReqGDPRPackage.eINSTANCE.getTransparency(),null );
+			org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency transparency= (org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency)UMLUtil.getStereotypeApplication(requirement, org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency.class);
+			transparency.setProcess(processRequirement);
+			for (PersonalData personalData : processRequirement.getPersonaldata()) {
+					transparency.getPersonalData().add((PersonalDataRequirement) personalData);
+			}
+			transparency.setDataSubject(this.dataSubject);
+			GDPRRequirements gdprRrequiement= new GDPRRequirements();
+			Requirement reqStereotypeAppli= (Requirement)UMLUtil.getStereotypeApplication(requirement, Requirement.class);
+			reqStereotypeAppli.setText(""+gdprRrequiement.getDescriptionForTransparentRequirement(transparency));
+			
+
+		}
+
+
+	}
+
+	
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/.classpath b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/.classpath
new file mode 100644
index 0000000..428337e
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/.project b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/.project
new file mode 100644
index 0000000..d38ae19
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.pdp4eng.req.metareq</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/.settings/org.eclipse.jdt.core.prefs b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/META-INF/MANIFEST.MF b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..dfc523e
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.pdp4eng.req.metareq;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %providerName
+Automatic-Module-Name: org.eclipse.papyrus.pdp4eng.req.metareq
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: com.google.guava;bundle-version="[27.1.0,28.0.0)",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.21.0,3.0.0)",
+ org.eclipse.xtend.lib;bundle-version="[2.21.0,3.0.0)",
+ org.eclipse.xtend.lib.macro;bundle-version="[2.21.0,3.0.0)",
+ org.eclipse.papyrus.pdp4eng.req.profile;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.papyrus.requirements.sysml14.assistant.commands;bundle-version="[0.8.0,1.0.0)"
+Export-Package: org.eclipse.papyrus.pdp4eng.req.metareq
+Bundle-ActivationPolicy: lazy
+Bundle-Localization: plugin
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/about.html b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/about.html
new file mode 100644
index 0000000..3e183aa
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>November 30, 2017</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/build.properties b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/build.properties
new file mode 100644
index 0000000..6c1e893
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/build.properties
@@ -0,0 +1,6 @@
+source.. = 		src/,\
+				xtend-gen
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               build.properties
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/plugin.properties b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/plugin.properties
new file mode 100644
index 0000000..08e0d14
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/plugin.properties
@@ -0,0 +1,16 @@
+#################################################################################
+# Copyright (c) 2020 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Patrick Tessier - initial API and implementation
+#	  Gabriel Pedroza - initial API and implementation
+##################################################################################
+
+pluginName = pdp4eng Req metareq
+providerName = Eclipse Modeling Project
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/pom.xml b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/pom.xml
new file mode 100644
index 0000000..07e9e81
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
+	<parent>
+		<groupId>org.eclipse.papyrus.pdp4eng</groupId>
+		<artifactId>org.eclipse.papyrus.pdp4eng.plugins.req.artifact</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.papyrus.pdp4eng.req.metareq</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+	
+</project>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/src/org/eclipse/papyrus/pdp4eng/req/metareq/GDPRRequirements.xtend b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/src/org/eclipse/papyrus/pdp4eng/req/metareq/GDPRRequirements.xtend
new file mode 100644
index 0000000..518866a
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/src/org/eclipse/papyrus/pdp4eng/req/metareq/GDPRRequirements.xtend
@@ -0,0 +1,103 @@
+/*****************************************************************************
+* Copyright (c)2020 CEA LIST, Committer Name, and others.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* CEA LIST - Initial API and implementation
+* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+*****************************************************************************/
+package org.eclipse.papyrus.pdp4eng.req.metareq
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly 
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent
+
+class GDPRRequirements {
+	/**
+	 * get Description for lawfull requirements from rticle5.1
+	 */
+	 def getDescriptionForLawfulRequirement(Lawful lawful){
+	 	'''IF process "«lawful.process.base_NamedElement.name»" processes "«getPersonalDataFromProcess(lawful)»" of "«lawful.dataSubject.base_NamedElement.name»" THEN the Process "«lawful.process.base_NamedElement.name»" shall be lawfull.'''
+	 }
+	 
+	 
+	 def getDescriptionForLawfulByConsent(LawfulByConsent lawfulByConsent){
+	 	'''Processing "«lawfulByConsent.process.base_NamedElement.name»" shall be lawful if the data subject "«lawfulByConsent.dataSubject.base_NamedElement.name»" has given consent "«lawfulByConsent.consent.base_NamedElement.name»" to the processing of his or her personal data "«getPersonalDataFromProcess(lawfulByConsent)»" for one or more specific purposes «lawfulByConsent.process.contributedTo.base_NamedElement.name»'''
+	}
+	 
+	 
+	 /**
+	 * get Description for fairly requirements from article5.1
+	 */
+	 def getDescriptionForFairlyRequirement(Fairly fairly){
+	 	
+	 	'''IF process "«fairly.process.base_NamedElement.name»" processes "«getPersonalDataFromProcess(fairly)»" of "«fairly.dataSubject.base_NamedElement.name»" THEN the Process "«fairly.process.base_NamedElement.name»" shall be fairly.'''
+	 }
+	 /**
+	 * get Description for transparent requirements from article5.1
+	 */
+	 def getDescriptionForTransparentRequirement(Transparency transparency){
+	 	
+	 	'''IF process "«transparency.process.base_NamedElement.name»" processes "«getPersonalDataFromProcess(transparency)»" of "«transparency.dataSubject.base_NamedElement.name»" THEN the Process "«transparency.process.base_NamedElement.name»" shall be transparent.'''
+	 }
+	 /**
+	 * get Description for transparent requirements from article5.1.b
+	 */
+	 def getDescriptionForPurposeLimitation(PurposeLimitation purposeLimitation){
+	 	
+	 	'''The purpose "«purposeLimitation.purpose.base_NamedElement.name»" of the PersonalData "«purposeLimitation.personalData.base_NamedElement.name»" shall be specified, explicit, legimate, and compatible.'''
+	 }
+	 
+	 /**
+	 * get Description for transparent requirements from article5.1.c
+	 */
+	 def getDescriptionForDataMinimisation(DataMinimisation dataMinimisation){
+	 	
+	 	'''Personal Data "«dataMinimisation.personalData.base_NamedElement.name»" shall be adequate, relevant and limited to what is necessary in relation to the purpose "«dataMinimisation.purpose.base_NamedElement.name»" for which they are processed'''
+	 }
+	 /**
+	 * get Description for transparent requirements from article5.1.d
+	 */
+	 def getDescriptionForAccurate(Accuracy accuracy){
+	 	'''Personal Data "«accuracy.personalData.base_NamedElement.name»" shall be accurate and, where necessary, kept up to date. If personal data "«accuracy.personalData.base_NamedElement.name»" are inaccurate, having regard to the purposes "«accuracy.purpose.base_NamedElement.name»" for which they are processed, it shall  erased or rectified without delay.'''
+	 }
+	 /**
+	 * get Description for transparent requirements from article5.1.e
+	 */
+	 def getDescriptionForStorageLimitation(StorageLimitation storageLimitation){
+	 	'''Personal Data "«storageLimitation.personalData.base_NamedElement.name»" shall be kept in a form which permits identification of data subject "«storageLimitation.personalData.relatedTo.get(0).base_NamedElement.name»" for no longer than is necessary for the purpose "«storageLimitation.purpose.base_NamedElement.name»" for which the personal data are processed'''
+	 	
+	 }
+	 
+	  /**
+	 * get Description for transparent requirements from article5.1.e
+	 */
+	 def getDescriptionForSecuritySafety(SecuritySafety securitySafety){
+	 	'''Personal Data «getPersonalDataFromProcess(securitySafety)»  shall be processed in a manner that ensures appropriate security. '''
+	 }
+	 
+	 def getPersonalDataFromProcess(ProcessPrinciple ProcessPrinciple){
+		var result = ""
+	 	
+	 	for (element : ProcessPrinciple.personalData) {
+	 		result=result+ element.base_NamedElement.name+" ";
+	 	}
+	 	return result
+	 }
+	 
+	 
+}
\ No newline at end of file
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/xtend-gen/org/eclipse/papyrus/pdp4eng/req/metareq/GDPRRequirements.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/xtend-gen/org/eclipse/papyrus/pdp4eng/req/metareq/GDPRRequirements.java
new file mode 100644
index 0000000..407d548
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.metareq/xtend-gen/org/eclipse/papyrus/pdp4eng/req/metareq/GDPRRequirements.java
@@ -0,0 +1,206 @@
+/**
+ * Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr
+ * Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr
+ */
+package org.eclipse.papyrus.pdp4eng.req.metareq;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@SuppressWarnings("all")
+public class GDPRRequirements {
+  /**
+   * get Description for lawfull requirements from rticle5.1
+   */
+  public CharSequence getDescriptionForLawfulRequirement(final Lawful lawful) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("IF process \"");
+    String _name = lawful.getProcess().getBase_NamedElement().getName();
+    _builder.append(_name);
+    _builder.append("\" processes \"");
+    String _personalDataFromProcess = this.getPersonalDataFromProcess(lawful);
+    _builder.append(_personalDataFromProcess);
+    _builder.append("\" of \"");
+    String _name_1 = lawful.getDataSubject().getBase_NamedElement().getName();
+    _builder.append(_name_1);
+    _builder.append("\" THEN the Process \"");
+    String _name_2 = lawful.getProcess().getBase_NamedElement().getName();
+    _builder.append(_name_2);
+    _builder.append("\" shall be lawfull.");
+    return _builder;
+  }
+  
+  public CharSequence getDescriptionForLawfulByConsent(final LawfulByConsent lawfulByConsent) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("Processing \"");
+    String _name = lawfulByConsent.getProcess().getBase_NamedElement().getName();
+    _builder.append(_name);
+    _builder.append("\" shall be lawful if the data subject \"");
+    String _name_1 = lawfulByConsent.getDataSubject().getBase_NamedElement().getName();
+    _builder.append(_name_1);
+    _builder.append("\" has given consent \"");
+    String _name_2 = lawfulByConsent.getConsent().getBase_NamedElement().getName();
+    _builder.append(_name_2);
+    _builder.append("\" to the processing of his or her personal data \"");
+    String _personalDataFromProcess = this.getPersonalDataFromProcess(lawfulByConsent);
+    _builder.append(_personalDataFromProcess);
+    _builder.append("\" for one or more specific purposes ");
+    String _name_3 = lawfulByConsent.getProcess().getContributedTo().getBase_NamedElement().getName();
+    _builder.append(_name_3);
+    return _builder;
+  }
+  
+  /**
+   * get Description for fairly requirements from article5.1
+   */
+  public CharSequence getDescriptionForFairlyRequirement(final Fairly fairly) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("IF process \"");
+    String _name = fairly.getProcess().getBase_NamedElement().getName();
+    _builder.append(_name);
+    _builder.append("\" processes \"");
+    String _personalDataFromProcess = this.getPersonalDataFromProcess(fairly);
+    _builder.append(_personalDataFromProcess);
+    _builder.append("\" of \"");
+    String _name_1 = fairly.getDataSubject().getBase_NamedElement().getName();
+    _builder.append(_name_1);
+    _builder.append("\" THEN the Process \"");
+    String _name_2 = fairly.getProcess().getBase_NamedElement().getName();
+    _builder.append(_name_2);
+    _builder.append("\" shall be fairly.");
+    return _builder;
+  }
+  
+  /**
+   * get Description for transparent requirements from article5.1
+   */
+  public CharSequence getDescriptionForTransparentRequirement(final Transparency transparency) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("IF process \"");
+    String _name = transparency.getProcess().getBase_NamedElement().getName();
+    _builder.append(_name);
+    _builder.append("\" processes \"");
+    String _personalDataFromProcess = this.getPersonalDataFromProcess(transparency);
+    _builder.append(_personalDataFromProcess);
+    _builder.append("\" of \"");
+    String _name_1 = transparency.getDataSubject().getBase_NamedElement().getName();
+    _builder.append(_name_1);
+    _builder.append("\" THEN the Process \"");
+    String _name_2 = transparency.getProcess().getBase_NamedElement().getName();
+    _builder.append(_name_2);
+    _builder.append("\" shall be transparent.");
+    return _builder;
+  }
+  
+  /**
+   * get Description for transparent requirements from article5.1.b
+   */
+  public CharSequence getDescriptionForPurposeLimitation(final PurposeLimitation purposeLimitation) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("The purpose \"");
+    String _name = purposeLimitation.getPurpose().getBase_NamedElement().getName();
+    _builder.append(_name);
+    _builder.append("\" of the PersonalData \"");
+    String _name_1 = purposeLimitation.getPersonalData().getBase_NamedElement().getName();
+    _builder.append(_name_1);
+    _builder.append("\" shall be specified, explicit, legimate, and compatible.");
+    return _builder;
+  }
+  
+  /**
+   * get Description for transparent requirements from article5.1.c
+   */
+  public CharSequence getDescriptionForDataMinimisation(final DataMinimisation dataMinimisation) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("Personal Data \"");
+    String _name = dataMinimisation.getPersonalData().getBase_NamedElement().getName();
+    _builder.append(_name);
+    _builder.append("\" shall be adequate, relevant and limited to what is necessary in relation to the purpose \"");
+    String _name_1 = dataMinimisation.getPurpose().getBase_NamedElement().getName();
+    _builder.append(_name_1);
+    _builder.append("\" for which they are processed");
+    return _builder;
+  }
+  
+  /**
+   * get Description for transparent requirements from article5.1.d
+   */
+  public CharSequence getDescriptionForAccurate(final Accuracy accuracy) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("Personal Data \"");
+    String _name = accuracy.getPersonalData().getBase_NamedElement().getName();
+    _builder.append(_name);
+    _builder.append("\" shall be accurate and, where necessary, kept up to date. If personal data \"");
+    String _name_1 = accuracy.getPersonalData().getBase_NamedElement().getName();
+    _builder.append(_name_1);
+    _builder.append("\" are inaccurate, having regard to the purposes \"");
+    String _name_2 = accuracy.getPurpose().getBase_NamedElement().getName();
+    _builder.append(_name_2);
+    _builder.append("\" for which they are processed, it shall  erased or rectified without delay.");
+    return _builder;
+  }
+  
+  /**
+   * get Description for transparent requirements from article5.1.e
+   */
+  public CharSequence getDescriptionForStorageLimitation(final StorageLimitation storageLimitation) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("Personal Data \"");
+    String _name = storageLimitation.getPersonalData().getBase_NamedElement().getName();
+    _builder.append(_name);
+    _builder.append("\" shall be kept in a form which permits identification of data subject \"");
+    String _name_1 = storageLimitation.getPersonalData().getRelatedTo().get(0).getBase_NamedElement().getName();
+    _builder.append(_name_1);
+    _builder.append("\" for no longer than is necessary for the purpose \"");
+    String _name_2 = storageLimitation.getPurpose().getBase_NamedElement().getName();
+    _builder.append(_name_2);
+    _builder.append("\" for which the personal data are processed");
+    return _builder;
+  }
+  
+  /**
+   * get Description for transparent requirements from article5.1.e
+   */
+  public CharSequence getDescriptionForSecuritySafety(final SecuritySafety securitySafety) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("Personal Data ");
+    String _personalDataFromProcess = this.getPersonalDataFromProcess(securitySafety);
+    _builder.append(_personalDataFromProcess);
+    _builder.append("  shall be processed in a manner that ensures appropriate security. ");
+    return _builder;
+  }
+  
+  public String getPersonalDataFromProcess(final ProcessPrinciple ProcessPrinciple) {
+    String result = "";
+    EList<PersonalDataRequirement> _personalData = ProcessPrinciple.getPersonalData();
+    for (final PersonalDataRequirement element : _personalData) {
+      String _name = element.getBase_NamedElement().getName();
+      String _plus = (result + _name);
+      String _plus_1 = (_plus + " ");
+      result = _plus_1;
+    }
+    return result;
+  }
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/.classpath b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/.project b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/.project
new file mode 100644
index 0000000..78c77f5
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.pdp4eng.req.profile</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/.settings/org.eclipse.jdt.core.prefs b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/META-INF/MANIFEST.MF b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..22114b3
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.pdp4eng.req.profile;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Automatic-Module-Name: org.eclipse.papyrus.pdp4eng.req.profile
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.22.0,3.0.0)";visibility:=reexport,
+ org.eclipse.uml2.types;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)";visibility:=reexport,
+ org.eclipse.papyrus.pdp4eng.common.profile;bundle-version="[1.0.0,2.0.0)";visibility:=reexport
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR,
+ org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl,
+ org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.util
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/about.html b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/about.html
new file mode 100644
index 0000000..3e183aa
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>November 30, 2017</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/build.properties b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/build.properties
new file mode 100644
index 0000000..bcfc6fd
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               model/,\
+               plugin.xml,\
+               plugin.properties,\
+               build.properties
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.ecore b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.ecore
new file mode 100644
index 0000000..3a34dec
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.ecore
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="pdp4engReqGDPR" nsURI="http://org.eclipse.papyrus.pdp4eng.req.profile"
+    nsPrefix="pdp4engReqGDPR">
+  <eClassifiers xsi:type="ecore:EClass" name="ProcessRequirement" eSuperTypes="../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//Process">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="requester" ordered="false"
+        upperBound="-1" eType="#//Stakeholder"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Stakeholder">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_NamedElement" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PersonalDataRequirement" eSuperTypes="../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//PersonalData">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="GDPRPrinciple">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_NamedElement" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ProcessPrinciple" eSuperTypes="#//GDPRPrinciple">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="process" ordered="false"
+        lowerBound="1" eType="#//ProcessRequirement"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dataSubject" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//DataSubject"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="personalData" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//PersonalDataRequirement"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PurposePersonalDataPrinciple" eSuperTypes="#//GDPRPrinciple">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="purpose" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//Purpose"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="personalData" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//PersonalData"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DataMinimisation" eSuperTypes="#//PurposePersonalDataPrinciple"/>
+  <eClassifiers xsi:type="ecore:EClass" name="PurposeLimitation" eSuperTypes="#//PurposePersonalDataPrinciple"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Accuracy" eSuperTypes="#//PurposePersonalDataPrinciple"/>
+  <eClassifiers xsi:type="ecore:EClass" name="StorageLimitation" eSuperTypes="#//PurposePersonalDataPrinciple"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Lawful" eSuperTypes="#//ProcessPrinciple"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Fairly" eSuperTypes="#//ProcessPrinciple"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Transparency" eSuperTypes="#//ProcessPrinciple"/>
+  <eClassifiers xsi:type="ecore:EClass" name="SecuritySafety" eSuperTypes="#//ProcessPrinciple"/>
+  <eClassifiers xsi:type="ecore:EClass" name="RelatedTo">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensitive" ordered="false"
+        lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="linkability" ordered="false"
+        lowerBound="1" eType="#//Linkability"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collection" ordered="false"
+        lowerBound="1" eType="#//CollectionMethod"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Element" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Linkability">
+    <eLiterals name="Single"/>
+    <eLiterals name="notKnown" value="1"/>
+    <eLiterals name="subgroup" value="2"/>
+    <eLiterals name="anonymous" value="3"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="CollectionMethod">
+    <eLiterals name="direct"/>
+    <eLiterals name="indirect" value="1"/>
+    <eLiterals name="reused" value="2"/>
+    <eLiterals name="external" value="3"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="AvailableAt">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="duration" ordered="false"
+        lowerBound="1" eType="#//Duration"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Element" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Duration">
+    <eLiterals name="forAction"/>
+    <eLiterals name="untilDeleted" value="1"/>
+    <eLiterals name="unlimited" value="2"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DerivedFrom">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Element" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DataRequirement" eSuperTypes="../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//Data"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Linkable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="duration" ordered="false"
+        lowerBound="1" eType="#//Duration"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="linkability" ordered="false"
+        lowerBound="1" eType="#//Linkability"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Element" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="GeneratedRequirements">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DataFlowRequirement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Activity" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Activity"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DataSubjects">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DataRequirements">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="AvailableInformation">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="concerns" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PersonalInformation">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="concerns" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//DataSubject"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="AvailableInformationContainer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PersonalInformationContainer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="UnlinkabilityRequirement" eSuperTypes="#//PrivacyRequirement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="linkability" ordered="false"
+        lowerBound="1" eType="#//Linkability"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PrivacyRequirement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_NamedElement" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dataSubject" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//DataSubject"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="counterstakeholders" ordered="false"
+        upperBound="-1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="personalData" ordered="false"
+        upperBound="-1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//PersonalData"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DataUnlinkabilityRequirement" eSuperTypes="#//UnlinkabilityRequirement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="links" ordered="false"
+        upperBound="-1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Controlers">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Link">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_NamedElement" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="linkability" ordered="false"
+        lowerBound="1" eType="#//Linkability"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="UndectabilityRequirement" eSuperTypes="#//PrivacyRequirement"/>
+  <eClassifiers xsi:type="ecore:EClass" name="PseudonimityRequirement" eSuperTypes="#//PrivacyRequirement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+        eType="#//PseudonymKind"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="PseudonymKind">
+    <eLiterals name="Person"/>
+    <eLiterals name="role" value="1"/>
+    <eLiterals name="relationShip" value="2"/>
+    <eLiterals name="roleRelationShip" value="3"/>
+    <eLiterals name="transaction" value="4"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="AnanomityRequirement" eSuperTypes="#//UnlinkabilityRequirement"/>
+  <eClassifiers xsi:type="ecore:EClass" name="DataRecordRequirement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_DataStoreNode" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//DataStoreNode"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dataList" ordered="false"
+        upperBound="-1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//Data"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="FunctionalRequirements">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="NonFunctionalRequirements">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LawfulByConsent" eSuperTypes="#//Lawful">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="consent" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//Consent"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LawfulByContract" eSuperTypes="#//Lawful">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//Contract"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LawfulByPublicInterest" eSuperTypes="#//Lawful">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="publicInterest" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//PublicInterest"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LawfulByLegitimateInterest" eSuperTypes="#//Lawful">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="legitimateInterest" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//LegitimateInterest"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LawfulByLegalObligation" eSuperTypes="#//Lawful">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="legalObligation" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//LegalObligation"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="LawfulByVitalInterest" eSuperTypes="#//Lawful">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="vitalInterest" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.ecore#//VitalInterest"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.genmodel b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.genmodel
new file mode 100644
index 0000000..cee7e9c
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.genmodel
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+    copyrightText=" Copyright (c)2020 CEA LIST, Committer Name, and others.&#xA;&#xA; All rights reserved. This program and the accompanying materials&#xA; are made available under the terms of the Eclipse Public License 2.0&#xA; which accompanies this distribution, and is available at&#xA; https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA; SPDX-License-Identifier: EPL-2.0&#xA;&#xA; Contributors:&#xA; CEA LIST - Initial API and implementation&#xA; Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr &#xA; Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr &#xA;"
+    modelDirectory="/org.eclipse.papyrus.pdp4eng.req.profile/src" modelPluginID="org.eclipse.papyrus.pdp4eng.req.profile"
+    modelName="pdp4engReqGDPR" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="8.0" copyrightFields="false"
+    usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.papyrus.pdp4eng.common.profile/model/pdp4engCommonGDPR.genmodel#//pdp4engCommonGDPR ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+    operationReflection="true" importOrganizing="true">
+  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+    <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+    <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+    <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+    <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
+    <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+    <details key="COMMENTS" value="PROCESS"/>
+    <details key="DERIVED_FEATURES" value="PROCESS"/>
+    <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+    <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+    <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+    <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+    <details key="UNION_PROPERTIES" value="REPORT"/>
+    <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+    <details key="NON_API_INVARIANTS" value="IGNORE"/>
+    <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+    <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+    <details key="OPERATION_BODIES" value="IGNORE"/>
+    <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+    <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+    <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+    <details key="INVOCATION_DELEGATES" value="IGNORE"/>
+    <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+  </genAnnotations>
+  <foreignModel>pdp4engReqGDPR.profile.uml</foreignModel>
+  <genPackages xsi:type="genmodel:GenPackage" prefix="pdp4engReqGDPR" basePackage="org.eclipse.papyrus.pdp4eng.req.profile"
+      disposableProviderFactory="true" ecorePackage="pdp4engReqGDPR.ecore#/">
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="pdp4engReqGDPR.ecore#//Linkability">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//Linkability/Single"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//Linkability/notKnown"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//Linkability/subgroup"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//Linkability/anonymous"/>
+    </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="pdp4engReqGDPR.ecore#//CollectionMethod">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//CollectionMethod/direct"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//CollectionMethod/indirect"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//CollectionMethod/reused"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//CollectionMethod/external"/>
+    </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="pdp4engReqGDPR.ecore#//Duration">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//Duration/forAction"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//Duration/untilDeleted"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//Duration/unlimited"/>
+    </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="pdp4engReqGDPR.ecore#//PseudonymKind">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//PseudonymKind/Person"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//PseudonymKind/role"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//PseudonymKind/relationShip"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//PseudonymKind/roleRelationShip"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="pdp4engReqGDPR.ecore#//PseudonymKind/transaction"/>
+    </genEnums>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//ProcessRequirement">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//ProcessRequirement/requester"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//Stakeholder">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//Stakeholder/base_NamedElement"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//PersonalDataRequirement">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PersonalDataRequirement/source"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//GDPRPrinciple">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//GDPRPrinciple/base_NamedElement"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//ProcessPrinciple">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//ProcessPrinciple/process"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//ProcessPrinciple/dataSubject"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//ProcessPrinciple/personalData"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//PurposePersonalDataPrinciple">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PurposePersonalDataPrinciple/purpose"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PurposePersonalDataPrinciple/personalData"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//DataMinimisation"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//PurposeLimitation"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//Accuracy"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//StorageLimitation"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//Lawful"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//Fairly"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//Transparency"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//SecuritySafety"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//RelatedTo">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute pdp4engReqGDPR.ecore#//RelatedTo/sensitive"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute pdp4engReqGDPR.ecore#//RelatedTo/linkability"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute pdp4engReqGDPR.ecore#//RelatedTo/collection"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//RelatedTo/base_Element"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//AvailableAt">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute pdp4engReqGDPR.ecore#//AvailableAt/duration"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//AvailableAt/base_Element"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//DerivedFrom">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//DerivedFrom/base_Element"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//DataRequirement"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//Linkable">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute pdp4engReqGDPR.ecore#//Linkable/duration"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute pdp4engReqGDPR.ecore#//Linkable/linkability"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//Linkable/base_Element"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//GeneratedRequirements">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//GeneratedRequirements/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//DataFlowRequirement">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//DataFlowRequirement/base_Activity"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//DataSubjects">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//DataSubjects/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//DataRequirements">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//DataRequirements/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//AvailableInformation">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//AvailableInformation/base_Package"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//AvailableInformation/concerns"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//PersonalInformation">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PersonalInformation/base_Package"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PersonalInformation/concerns"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//AvailableInformationContainer">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//AvailableInformationContainer/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//PersonalInformationContainer">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PersonalInformationContainer/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//UnlinkabilityRequirement">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute pdp4engReqGDPR.ecore#//UnlinkabilityRequirement/linkability"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//PrivacyRequirement">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PrivacyRequirement/base_NamedElement"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PrivacyRequirement/dataSubject"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PrivacyRequirement/counterstakeholders"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//PrivacyRequirement/personalData"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//DataUnlinkabilityRequirement">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//DataUnlinkabilityRequirement/links"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//Controlers">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//Controlers/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//Link">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//Link/base_NamedElement"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute pdp4engReqGDPR.ecore#//Link/linkability"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//UndectabilityRequirement"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//PseudonimityRequirement">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute pdp4engReqGDPR.ecore#//PseudonimityRequirement/kind"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//AnanomityRequirement"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//DataRecordRequirement">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//DataRecordRequirement/base_DataStoreNode"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//DataRecordRequirement/dataList"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//FunctionalRequirements">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//FunctionalRequirements/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//NonFunctionalRequirements">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//NonFunctionalRequirements/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//LawfulByConsent">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//LawfulByConsent/consent"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//LawfulByContract">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//LawfulByContract/contract"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//LawfulByPublicInterest">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//LawfulByPublicInterest/publicInterest"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//LawfulByLegitimateInterest">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//LawfulByLegitimateInterest/legitimateInterest"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//LawfulByLegalObligation">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//LawfulByLegalObligation/legalObligation"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="pdp4engReqGDPR.ecore#//LawfulByVitalInterest">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference pdp4engReqGDPR.ecore#//LawfulByVitalInterest/vitalInterest"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.profile.di b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.profile.di
new file mode 100644
index 0000000..247ed5e
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.profile.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.uml.architecture.Profile"/>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.profile.notation b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.profile.notation
new file mode 100644
index 0000000..52becf4
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.profile.notation
@@ -0,0 +1,1981 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+  <notation:Diagram xmi:id="_JH_WIKIoEemN_tazoyo3PQ" type="PapyrusUMLProfileDiagram" name="Profile Diagram" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_pmGPwMQgEemOUp1qx0PUxQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_pmG20MQgEemOUp1qx0PUxQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_pmG20cQgEemOUp1qx0PUxQ" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_pmG20sQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_pmG208QgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_pmG21MQgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pmG21cQgEemOUp1qx0PUxQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_pmG21sQgEemOUp1qx0PUxQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_pmG218QgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_pmG22MQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_pmG22cQgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pmG22sQgEemOUp1qx0PUxQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_-3IaAKe8EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pmGPwcQgEemOUp1qx0PUxQ" x="120" y="100" width="581"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_pnFHMMQgEemOUp1qx0PUxQ" type="Class_MetaclassShape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_pnGVUMQgEemOUp1qx0PUxQ" type="Class_MetaclassNameLabel"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pnFHMcQgEemOUp1qx0PUxQ" x="120" y="20" width="801"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_srCncMQgEemOUp1qx0PUxQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_srCncsQgEemOUp1qx0PUxQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_srCnc8QgEemOUp1qx0PUxQ" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_E2s6MMQhEemOUp1qx0PUxQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_E2JgkMQhEemOUp1qx0PUxQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_E2s6McQhEemOUp1qx0PUxQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_Wr_gwMQhEemOUp1qx0PUxQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_Wq-0IMQhEemOUp1qx0PUxQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Wr_gwcQhEemOUp1qx0PUxQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_caxBcMQhEemOUp1qx0PUxQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_caAzgMQhEemOUp1qx0PUxQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_caxBccQhEemOUp1qx0PUxQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_srCndMQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_srCndcQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_srCndsQgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_srCnd8QgEemOUp1qx0PUxQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_srDOgMQgEemOUp1qx0PUxQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_srDOgcQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_srDOgsQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_srDOg8QgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_srDOhMQgEemOUp1qx0PUxQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_EMnQ8Ke9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_srCnccQgEemOUp1qx0PUxQ" x="120" y="260"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_xD7TQMQgEemOUp1qx0PUxQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xD76UMQgEemOUp1qx0PUxQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xD76UcQgEemOUp1qx0PUxQ" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xD76UsQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xD76U8QgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xD76VMQgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xD76VcQgEemOUp1qx0PUxQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xD76VsQgEemOUp1qx0PUxQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xD76V8QgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xD76WMQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xD76WcQgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xD76WsQgEemOUp1qx0PUxQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_b2rSgKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xD7TQcQgEemOUp1qx0PUxQ" x="120" y="460"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_xx9d8MQgEemOUp1qx0PUxQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xx-FAMQgEemOUp1qx0PUxQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xx-FAcQgEemOUp1qx0PUxQ" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xx-FAsQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xx-FA8QgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xx-FBMQgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xx-FBcQgEemOUp1qx0PUxQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xx-sEMQgEemOUp1qx0PUxQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xx-sEcQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xx-sEsQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xx-sE8QgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xx-sFMQgEemOUp1qx0PUxQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_dVmHkKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xx9d8cQgEemOUp1qx0PUxQ" x="240" y="460"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_yi3WcMQgEemOUp1qx0PUxQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_yi39gMQgEemOUp1qx0PUxQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_yi39gcQgEemOUp1qx0PUxQ" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_yi39gsQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_yi39g8QgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_yi39hMQgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yi39hcQgEemOUp1qx0PUxQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_yi4kkMQgEemOUp1qx0PUxQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_yi4kkcQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_yi4kksQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_yi4kk8QgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yi4klMQgEemOUp1qx0PUxQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_ej_0YKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yi3WccQgEemOUp1qx0PUxQ" x="360" y="460"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_0oK3oM5IEemMr69mPZbrMQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_0oMs0M5IEemMr69mPZbrMQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_0oMs0c5IEemMr69mPZbrMQ" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_0oMs0s5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_0oMs085IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_0oMs1M5IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0oMs1c5IEemMr69mPZbrMQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_0oMs1s5IEemMr69mPZbrMQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_0oMs185IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_0oMs2M5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_0oMs2c5IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0oMs2s5IEemMr69mPZbrMQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_Qykr4Ke9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0oK3oc5IEemMr69mPZbrMQ" x="500" y="460"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_1SqmIM5IEemMr69mPZbrMQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_1Su3kM5IEemMr69mPZbrMQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_1Su3kc5IEemMr69mPZbrMQ" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_J0edUM5JEemMr69mPZbrMQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_JzmTkM5JEemMr69mPZbrMQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_J0edUc5JEemMr69mPZbrMQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_P_wT0M5JEemMr69mPZbrMQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_P_FlcM5JEemMr69mPZbrMQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_P_wT0c5JEemMr69mPZbrMQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_1Su3ks5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_1Su3k85IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_1Su3lM5IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1Su3lc5IEemMr69mPZbrMQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_1SveoM5IEemMr69mPZbrMQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_1Sveoc5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_1Sveos5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_1Sveo85IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1SvepM5IEemMr69mPZbrMQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_IJyRIKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1SqmIc5IEemMr69mPZbrMQ" x="500" y="260"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_3PmM4M5IEemMr69mPZbrMQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_3PmM4s5IEemMr69mPZbrMQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_3PmM485IEemMr69mPZbrMQ" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_3PmM5M5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_3PmM5c5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_3PmM5s5IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3PmM585IEemMr69mPZbrMQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_3Pmz8M5IEemMr69mPZbrMQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_3Pmz8c5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_3Pmz8s5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_3Pmz885IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Pmz9M5IEemMr69mPZbrMQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_Ntr-kKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3PmM4c5IEemMr69mPZbrMQ" x="860" y="460"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_4IdukM5IEemMr69mPZbrMQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_4IeVoM5IEemMr69mPZbrMQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_4IeVoc5IEemMr69mPZbrMQ" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_4IeVos5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_4IeVo85IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_4IeVpM5IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4IeVpc5IEemMr69mPZbrMQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_4IeVps5IEemMr69mPZbrMQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_4IeVp85IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_4IeVqM5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_4IeVqc5IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4IeVqs5IEemMr69mPZbrMQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_VkrwAKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Idukc5IEemMr69mPZbrMQ" x="740" y="460"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_9AvFEM5IEemMr69mPZbrMQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_9AvFEs5IEemMr69mPZbrMQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_9AvFE85IEemMr69mPZbrMQ" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_9AvFFM5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_9AvFFc5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9AvFFs5IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9AvFF85IEemMr69mPZbrMQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_9AvFGM5IEemMr69mPZbrMQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_9AvFGc5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_9AvFGs5IEemMr69mPZbrMQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_9AvFG85IEemMr69mPZbrMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9AvFHM5IEemMr69mPZbrMQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_TSUEwKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9AvFEc5IEemMr69mPZbrMQ" x="620" y="460"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_0vHbw1rzEeq5coEOWsxi4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_0vHbxFrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0vIC0FrzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0vHbxVrzEeq5coEOWsxi4A" x="320" y="20"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_JH_WIaIoEemN_tazoyo3PQ" name="diagram_compatibility_version" stringValue="1.4.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_JH_WIqIoEemN_tazoyo3PQ"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_JH_WI6IoEemN_tazoyo3PQ" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+      <owner xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    </styles>
+    <element xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    <edges xmi:type="notation:Connector" xmi:id="_poFMwMQgEemOUp1qx0PUxQ" type="Extension_Edge" source="_pmGPwMQgEemOUp1qx0PUxQ" target="_pnFHMMQgEemOUp1qx0PUxQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_poFMwcQgEemOUp1qx0PUxQ"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_CIjHcKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_poFMwsQgEemOUp1qx0PUxQ" points="[0, 0, -643984, -643984]$[0, 0, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qXVfcMQgEemOUp1qx0PUxQ" id="(0.13769363166953527,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qXVfccQgEemOUp1qx0PUxQ" id="(0.09987515605493133,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_tXjvMMQgEemOUp1qx0PUxQ" type="Generalization_Edge" source="_srCncMQgEemOUp1qx0PUxQ" target="_pmGPwMQgEemOUp1qx0PUxQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_tXjvM8QgEemOUp1qx0PUxQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_tqRP0MQgEemOUp1qx0PUxQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_tXjvNMQgEemOUp1qx0PUxQ" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_tXjvMcQgEemOUp1qx0PUxQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_GKNmEKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tXjvMsQgEemOUp1qx0PUxQ" points="[230, 444, -643984, -643984]$[216, 320, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trYqIMQgEemOUp1qx0PUxQ" id="(0.42402826855123676,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trZRMMQgEemOUp1qx0PUxQ" id="(0.20654044750430292,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_xEvyoMQgEemOUp1qx0PUxQ" type="Generalization_Edge" source="_xD7TQMQgEemOUp1qx0PUxQ" target="_srCncMQgEemOUp1qx0PUxQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xEwZssQgEemOUp1qx0PUxQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y9SooMQgEemOUp1qx0PUxQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_xEwZs8QgEemOUp1qx0PUxQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_xEwZsMQgEemOUp1qx0PUxQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_kpiPQKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xEwZscQgEemOUp1qx0PUxQ" points="[0, 0, -643984, -643984]$[186, 400, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y9sRQMQgEemOUp1qx0PUxQ" id="(0.6,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y9s4UMQgEemOUp1qx0PUxQ" id="(0.21201413427561838,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_xzkngMQgEemOUp1qx0PUxQ" type="Generalization_Edge" source="_xx9d8MQgEemOUp1qx0PUxQ" target="_srCncMQgEemOUp1qx0PUxQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xzlOkMQgEemOUp1qx0PUxQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zTSt0MQgEemOUp1qx0PUxQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_xzlOkcQgEemOUp1qx0PUxQ" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_xzkngcQgEemOUp1qx0PUxQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_l_gjsKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xzkngsQgEemOUp1qx0PUxQ" points="[0, 0, -643984, -643984]$[186, 400, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zUEJ4MQgEemOUp1qx0PUxQ" id="(0.4,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zUEJ4cQgEemOUp1qx0PUxQ" id="(0.5653710247349824,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_ykMMIMQgEemOUp1qx0PUxQ" type="Generalization_Edge" source="_yi3WcMQgEemOUp1qx0PUxQ" target="_srCncMQgEemOUp1qx0PUxQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_ykMMI8QgEemOUp1qx0PUxQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zr6CIMQgEemOUp1qx0PUxQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_ykMMJMQgEemOUp1qx0PUxQ" x="1" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_ykMMIcQgEemOUp1qx0PUxQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_m4HmsKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ykMMIsQgEemOUp1qx0PUxQ" points="[0, 0, -643984, -643984]$[186, 400, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zssFQMQgEemOUp1qx0PUxQ" id="(0.2,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zssFQcQgEemOUp1qx0PUxQ" id="(0.9187279151943463,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_1UZrgM5IEemMr69mPZbrMQ" type="Generalization_Edge" source="_0oK3oM5IEemMr69mPZbrMQ" target="_1SqmIM5IEemMr69mPZbrMQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_1UaSkM5IEemMr69mPZbrMQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1qR04M5IEemMr69mPZbrMQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_1UaSkc5IEemMr69mPZbrMQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_1UZrgc5IEemMr69mPZbrMQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#__agXYKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1UZrgs5IEemMr69mPZbrMQ" points="[560, 460, -643984, -643984]$[560, 420, -643984, -643984]$[600, 420, -643984, -643984]$[600, 372, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1rofwM5IEemMr69mPZbrMQ" id="(0.5504587155963303,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1rpG0M5IEemMr69mPZbrMQ" id="(0.49019607843137253,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_2Q03gM5IEemMr69mPZbrMQ" type="Generalization_Edge" source="_1SqmIM5IEemMr69mPZbrMQ" target="_pmGPwMQgEemOUp1qx0PUxQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_2Q1ekM5IEemMr69mPZbrMQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-sgDUM5IEemMr69mPZbrMQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_2Q1ekc5IEemMr69mPZbrMQ" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_2Q03gc5IEemMr69mPZbrMQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_-aC_8Ke9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2Q03gs5IEemMr69mPZbrMQ" points="[600, 319, -643984, -643984]$[260, 276, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-tXmAM5IEemMr69mPZbrMQ" id="(0.49019607843137253,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-tYNEM5IEemMr69mPZbrMQ" id="(0.8261617900172117,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_3Qp80M5IEemMr69mPZbrMQ" type="Generalization_Edge" source="_3PmM4M5IEemMr69mPZbrMQ" target="_1SqmIM5IEemMr69mPZbrMQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_3Qp8085IEemMr69mPZbrMQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AiTuYM5JEemMr69mPZbrMQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3Qp81M5IEemMr69mPZbrMQ" x="-1" y="58"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_3Qp80c5IEemMr69mPZbrMQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_-8b7UKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Qp80s5IEemMr69mPZbrMQ" points="[920, 460, -643984, -643984]$[920, 420, -643984, -643984]$[700, 420, -643984, -643984]$[620, 420, -643984, -643984]$[700, 372, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AkCzwc5JEemMr69mPZbrMQ" id="(0.5660377358490566,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AkCzws5JEemMr69mPZbrMQ" id="(0.5882352941176471,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_4KKXsM5IEemMr69mPZbrMQ" type="Generalization_Edge" source="_4IdukM5IEemMr69mPZbrMQ" target="_1SqmIM5IEemMr69mPZbrMQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_4KKXs85IEemMr69mPZbrMQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Ai49MM5JEemMr69mPZbrMQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_4KKXtM5IEemMr69mPZbrMQ" x="-1" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_4KKXsc5IEemMr69mPZbrMQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_AaOvAKe-EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4KKXss5IEemMr69mPZbrMQ" points="[760, 460, -643984, -643984]$[760, 420, -643984, -643984]$[640, 420, -643984, -643984]$[640, 372, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AkCzw85JEemMr69mPZbrMQ" id="(0.18867924528301888,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AkDa0M5JEemMr69mPZbrMQ" id="(0.6862745098039216,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_9obXMM5IEemMr69mPZbrMQ" type="Generalization_Edge" source="_9AvFEM5IEemMr69mPZbrMQ" target="_1SqmIM5IEemMr69mPZbrMQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_9ob-QM5IEemMr69mPZbrMQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AjYscM5JEemMr69mPZbrMQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_9ob-Qc5IEemMr69mPZbrMQ" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_9obXMc5IEemMr69mPZbrMQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#__5XdoKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9obXMs5IEemMr69mPZbrMQ" points="[640, 460, -643984, -643984]$[640, 420, -643984, -643984]$[620, 420, -643984, -643984]$[620, 372, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AkCMsM5JEemMr69mPZbrMQ" id="(0.2,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AkCzwM5JEemMr69mPZbrMQ" id="(0.5882352941176471,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_0vIC0VrzEeq5coEOWsxi4A" type="StereotypeCommentLink" source="_pnFHMMQgEemOUp1qx0PUxQ" target="_0vHbw1rzEeq5coEOWsxi4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_0vIC0lrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0vIC1lrzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0vIC01rzEeq5coEOWsxi4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0vIC1FrzEeq5coEOWsxi4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0vIC1VrzEeq5coEOWsxi4A"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_j6ud8Ke8EemiOZ_hb7cBOg" type="PapyrusUMLProfileDiagram" name="Principles" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_k2j0EKe8EemiOZ_hb7cBOg" type="Class_MetaclassShape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_k2lpQKe8EemiOZ_hb7cBOg" type="Class_MetaclassNameLabel"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k2j0Eae8EemiOZ_hb7cBOg" x="20" y="60" width="1241"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_lg4jcKe8EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_lg4jcqe8EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_lg4jc6e8EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_lg4jdKe8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_lg4jdae8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_lg4jdqe8EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg4jd6e8EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_lg4jeKe8EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_lg4jeae8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_lg4jeqe8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_lg4je6e8EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg4jfKe8EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_bQqywKIoEemN_tazoyo3PQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lg4jcae8EemiOZ_hb7cBOg" x="40" y="340"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_lzum8Ke8EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_lzvOAae8EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_lzv1EKe8EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_lzv1Eae8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_lzv1Eqe8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_lzv1E6e8EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lzv1FKe8EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_lzv1Fae8EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_lzv1Fqe8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_lzv1F6e8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_lzv1GKe8EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lzv1Gae8EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_QiJakKIoEemN_tazoyo3PQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lzvOAKe8EemiOZ_hb7cBOg" x="260" y="340"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_-3K2QKe8EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_-3LdUKe8EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_-3LdUae8EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_-3LdUqe8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_-3LdU6e8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_-3LdVKe8EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-3LdVae8EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_-3LdVqe8EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_-3LdV6e8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_-3LdWKe8EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_-3LdWae8EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-3LdWqe8EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_-3IaAKe8EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-3K2Qae8EemiOZ_hb7cBOg" x="720" y="200" width="461" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_EMn4AKe9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_EMn4Aqe9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_EMofEKe9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_EMofEae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_EMofEqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_EMofE6e9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EMofFKe9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_EMofFae9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_EMofFqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_EMofF6e9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_EMofGKe9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EMofGae9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_EMnQ8Ke9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EMn4Aae9EemiOZ_hb7cBOg" x="720" y="280" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_IJ0tYKe9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_IJ0tYqe9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_IJ0tY6e9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_IJ0tZKe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_IJ0tZae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_IJ0tZqe9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IJ0tZ6e9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_IJ0taKe9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_IJ0taae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_IJ0taqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_IJ0ta6e9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IJ0tbKe9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_IJyRIKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IJ0tYae9EemiOZ_hb7cBOg" x="1000" y="280" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_NttzwKe9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Ntua0Ke9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_Ntua0ae9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_Ntua0qe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_Ntua06e9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_Ntua1Ke9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ntua1ae9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_Ntua1qe9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_Ntua16e9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_Ntua2Ke9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_Ntua2ae9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ntua2qe9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_Ntr-kKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nttzwae9EemiOZ_hb7cBOg" x="1000" y="380" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_Qyl6AKe9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_QynIIKe9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_QynIIae9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_QynIIqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_QynII6e9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_QynIJKe9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QynIJae9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_QynIJqe9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_QynIJ6e9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_QynIKKe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_QynIKae9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QynIKqe9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_Qykr4Ke9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qyl6Aae9EemiOZ_hb7cBOg" x="1120" y="380" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_TSVS4Ke9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_TSVS4qe9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_TSVS46e9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_TSVS5Ke9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_TSVS5ae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_TSVS5qe9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TSVS56e9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_TSVS6Ke9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_TSVS6ae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_TSVS6qe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_TSVS66e9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TSVS7Ke9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_TSUEwKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TSVS4ae9EemiOZ_hb7cBOg" x="1260" y="380" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_VksXEKe9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_VksXEqe9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_VksXE6e9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_VksXFKe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_VksXFae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_VksXFqe9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VksXF6e9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_VksXGKe9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_VksXGae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_VksXGqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_VksXG6e9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VksXHKe9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_VkrwAKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VksXEae9EemiOZ_hb7cBOg" x="1380" y="380" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_b2r5kKe9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_b2r5kqe9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_b2sgoKe9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_b2sgoae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_b2sgoqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_b2sgo6e9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2sgpKe9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_b2sgpae9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_b2sgpqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_b2sgp6e9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_b2sgqKe9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2sgqae9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_b2rSgKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2r5kae9EemiOZ_hb7cBOg" x="400" y="380" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_dVmuoKe9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_dVnVsKe9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_dVnVsae9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_dVnVsqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_dVnVs6e9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_dVnVtKe9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dVnVtae9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_dVnVtqe9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_dVnVt6e9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_dVnVuKe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_dVnVuae9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dVnVuqe9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_dVmHkKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dVmuoae9EemiOZ_hb7cBOg" x="520" y="380" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_ekAbcKe9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_ekAbcqe9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_ekAbc6e9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_ekAbdKe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_ekAbdae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_ekAbdqe9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ekAbd6e9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_ekAbeKe9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_ekAbeae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_ekAbeqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_ekAbe6e9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ekAbfKe9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_ej_0YKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ekAbcae9EemiOZ_hb7cBOg" x="640" y="380" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_iofkkKe9EemiOZ_hb7cBOg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_iofkkqe9EemiOZ_hb7cBOg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_iofkk6e9EemiOZ_hb7cBOg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_iogLoKe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_iogLoae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_iogLoqe9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iogLo6e9EemiOZ_hb7cBOg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_iogLpKe9EemiOZ_hb7cBOg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_iogLpae9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_iogLpqe9EemiOZ_hb7cBOg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_iogLp6e9EemiOZ_hb7cBOg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iogLqKe9EemiOZ_hb7cBOg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_ioeWcKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iofkkae9EemiOZ_hb7cBOg" x="780" y="380" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_qqUeoFpGEeqv8eaIcZt9UA" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_qqWT0FpGEeqv8eaIcZt9UA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_qqW64FpGEeqv8eaIcZt9UA" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_qqW64VpGEeqv8eaIcZt9UA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_qqW64lpGEeqv8eaIcZt9UA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_qqW641pGEeqv8eaIcZt9UA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qqW65FpGEeqv8eaIcZt9UA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_qqW65VpGEeqv8eaIcZt9UA" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_qqW65lpGEeqv8eaIcZt9UA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_qqW651pGEeqv8eaIcZt9UA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_qqW66FpGEeqv8eaIcZt9UA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qqW66VpGEeqv8eaIcZt9UA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pathmap://pdp4engreqprofile-COMMON/pdp4engreqprofileCommonGDPR.profile.uml#_bQqywKIoEemN_tazoyo3PQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qqUeoVpGEeqv8eaIcZt9UA" x="60" y="160"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_sntYYFpGEeqv8eaIcZt9UA" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_snt_cFpGEeqv8eaIcZt9UA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_snt_cVpGEeqv8eaIcZt9UA" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_snt_clpGEeqv8eaIcZt9UA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_snt_c1pGEeqv8eaIcZt9UA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_snt_dFpGEeqv8eaIcZt9UA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_snt_dVpGEeqv8eaIcZt9UA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_snt_dlpGEeqv8eaIcZt9UA" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_snt_d1pGEeqv8eaIcZt9UA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_snt_eFpGEeqv8eaIcZt9UA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_snt_eVpGEeqv8eaIcZt9UA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_snt_elpGEeqv8eaIcZt9UA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pathmap://pdp4engreqprofile-COMMON/pdp4engreqprofileCommonGDPR.profile.uml#_QiJakKIoEemN_tazoyo3PQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sntYYVpGEeqv8eaIcZt9UA" x="270" y="145"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_1LvGUFrzEeq5coEOWsxi4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_1LvGUVrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_1LvGU1rzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1LvGUlrzEeq5coEOWsxi4A" x="220" y="60"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_j6ud8ae8EemiOZ_hb7cBOg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_j6ud8qe8EemiOZ_hb7cBOg"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_j6ud86e8EemiOZ_hb7cBOg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+      <owner xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    </styles>
+    <element xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    <edges xmi:type="notation:Connector" xmi:id="_CIs4cKe9EemiOZ_hb7cBOg" type="Extension_Edge" source="_-3K2QKe8EemiOZ_hb7cBOg" target="_k2j0EKe8EemiOZ_hb7cBOg">
+      <styles xmi:type="notation:FontStyle" xmi:id="_CIs4cae9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_CIjHcKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CIs4cqe9EemiOZ_hb7cBOg" points="[960, 200, -643984, -643984]$[960, 110, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CI9XIKe9EemiOZ_hb7cBOg" id="(0.5206073752711496,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CI9-MKe9EemiOZ_hb7cBOg" id="(0.7574536663980661,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_GKcPkKe9EemiOZ_hb7cBOg" type="Generalization_Edge" source="_EMn4AKe9EemiOZ_hb7cBOg" target="_-3K2QKe8EemiOZ_hb7cBOg">
+      <children xmi:type="notation:DecorationNode" xmi:id="_GKc2oKe9EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fRSlkDeDEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_GKc2oae9EemiOZ_hb7cBOg" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_GKcPkae9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_GKNmEKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GKcPkqe9EemiOZ_hb7cBOg" points="[780, 360, -643984, -643984]$[960, 300, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GLA3UKe9EemiOZ_hb7cBOg" id="(0.4,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GLA3Uae9EemiOZ_hb7cBOg" id="(0.08676789587852494,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_kpxf0Ke9EemiOZ_hb7cBOg" type="Generalization_Edge" source="_b2r5kKe9EemiOZ_hb7cBOg" target="_EMn4AKe9EemiOZ_hb7cBOg" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_kpxf06e9EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fRhPEDeDEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_kpxf1Ke9EemiOZ_hb7cBOg" y="-80"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_kpxf0ae9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_kpiPQKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kpxf0qe9EemiOZ_hb7cBOg" points="[440, 380, -643984, -643984]$[440, 360, -643984, -643984]$[740, 360, -643984, -643984]$[740, 321, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kqHeEKe9EemiOZ_hb7cBOg" id="(0.4,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kqHeEae9EemiOZ_hb7cBOg" id="(0.4,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_l_sw8Ke9EemiOZ_hb7cBOg" type="Generalization_Edge" source="_dVmuoKe9EemiOZ_hb7cBOg" target="_EMn4AKe9EemiOZ_hb7cBOg" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_l_sw86e9EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fRv4kDeDEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_l_sw9Ke9EemiOZ_hb7cBOg" y="-80"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_l_sw8ae9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_l_gjsKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l_sw8qe9EemiOZ_hb7cBOg" points="[560, 380, -643984, -643984]$[560, 360, -643984, -643984]$[760, 360, -643984, -643984]$[760, 321, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mAKrAKe9EemiOZ_hb7cBOg" id="(0.4,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mAKrAae9EemiOZ_hb7cBOg" id="(0.4,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_m4UbAKe9EemiOZ_hb7cBOg" type="Generalization_Edge" source="_ekAbcKe9EemiOZ_hb7cBOg" target="_EMn4AKe9EemiOZ_hb7cBOg" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_m4VCEKe9EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fR97ADeDEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_m4VCEae9EemiOZ_hb7cBOg" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_m4UbAae9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_m4HmsKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_m4UbAqe9EemiOZ_hb7cBOg" points="[680, 380, -643984, -643984]$[680, 360, -643984, -643984]$[760, 360, -643984, -643984]$[760, 321, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m4xG8Ke9EemiOZ_hb7cBOg" id="(0.4,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m4xG8ae9EemiOZ_hb7cBOg" id="(0.4,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_nrkc4Ke9EemiOZ_hb7cBOg" type="Generalization_Edge" source="_iofkkKe9EemiOZ_hb7cBOg" target="_EMn4AKe9EemiOZ_hb7cBOg" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_nrkc46e9EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fSMkgDeDEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_nrkc5Ke9EemiOZ_hb7cBOg" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_nrkc4ae9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_nrSJAKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nrkc4qe9EemiOZ_hb7cBOg" points="[920, 380, -643984, -643984]$[920, 360, -643984, -643984]$[760, 360, -643984, -643984]$[760, 321, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nsEzMKe9EemiOZ_hb7cBOg" id="(0.6,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nsEzMae9EemiOZ_hb7cBOg" id="(0.4,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_-acBgKe9EemiOZ_hb7cBOg" type="Generalization_Edge" source="_IJ0tYKe9EemiOZ_hb7cBOg" target="_-3K2QKe8EemiOZ_hb7cBOg">
+      <children xmi:type="notation:DecorationNode" xmi:id="_-acBg6e9EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_W5-VUDeDEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_-acBhKe9EemiOZ_hb7cBOg" x="-1" y="58"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_-acBgae9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_-aC_8Ke9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-acBgqe9EemiOZ_hb7cBOg" points="[1060, 360, -643984, -643984]$[960, 300, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-bRH8Ke9EemiOZ_hb7cBOg" id="(0.3508771929824561,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-bRH8ae9EemiOZ_hb7cBOg" id="(0.737527114967462,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_-84nQKe9EemiOZ_hb7cBOg" type="Generalization_Edge" source="_NttzwKe9EemiOZ_hb7cBOg" target="_IJ0tYKe9EemiOZ_hb7cBOg" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_-85OUKe9EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gUiyUDeDEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_-85OUae9EemiOZ_hb7cBOg" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_-84nQae9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_-8b7UKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-84nQqe9EemiOZ_hb7cBOg" points="[1080, 380, -643984, -643984]$[1080, 321, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-9gSUKe9EemiOZ_hb7cBOg" id="(0.7547169811320755,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-9g5YKe9EemiOZ_hb7cBOg" id="(0.4678362573099415,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="__avA4Ke9EemiOZ_hb7cBOg" type="Generalization_Edge" source="_Qyl6AKe9EemiOZ_hb7cBOg" target="_IJ0tYKe9EemiOZ_hb7cBOg" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="__avA46e9EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_KimtMKe-EemiOZ_hb7cBOg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__avA5Ke9EemiOZ_hb7cBOg" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="__avA4ae9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#__agXYKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__avA4qe9EemiOZ_hb7cBOg" points="[1180, 540, -643984, -643984]$[1180, 360, -643984, -643984]$[1080, 360, -643984, -643984]$[1080, 321, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__bOwIKe9EemiOZ_hb7cBOg" id="(0.5504587155963303,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__bOwIae9EemiOZ_hb7cBOg" id="(0.4678362573099415,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="__5jD0Ke9EemiOZ_hb7cBOg" type="Generalization_Edge" source="_TSVS4Ke9EemiOZ_hb7cBOg" target="_IJ0tYKe9EemiOZ_hb7cBOg" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="__5jq4qe9EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_K9B_YKe-EemiOZ_hb7cBOg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__5jq46e9EemiOZ_hb7cBOg" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="__5jq4Ke9EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#__5XdoKe9EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__5jq4ae9EemiOZ_hb7cBOg" points="[1320, 540, -643984, -643984]$[1320, 360, -643984, -643984]$[1080, 360, -643984, -643984]$[1080, 321, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__59TgKe9EemiOZ_hb7cBOg" id="(0.6,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__59Tgae9EemiOZ_hb7cBOg" id="(0.4678362573099415,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_AaktQKe-EemiOZ_hb7cBOg" type="Generalization_Edge" source="_VksXEKe9EemiOZ_hb7cBOg" target="_IJ0tYKe9EemiOZ_hb7cBOg" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_AaktQ6e-EemiOZ_hb7cBOg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LVb4UKe-EemiOZ_hb7cBOg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_AaktRKe-EemiOZ_hb7cBOg" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_AaktQae-EemiOZ_hb7cBOg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_AaOvAKe-EemiOZ_hb7cBOg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AaktQqe-EemiOZ_hb7cBOg" points="[1440, 540, -643984, -643984]$[1440, 360, -643984, -643984]$[1080, 360, -643984, -643984]$[1080, 321, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AbALEKe-EemiOZ_hb7cBOg" id="(0.5660377358490566,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AbAyIKe-EemiOZ_hb7cBOg" id="(0.4678362573099415,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_qrVyUFpGEeqv8eaIcZt9UA" type="Generalization_Edge" source="_lg4jcKe8EemiOZ_hb7cBOg" target="_qqUeoFpGEeqv8eaIcZt9UA">
+      <children xmi:type="notation:DecorationNode" xmi:id="_qrWZYFpGEeqv8eaIcZt9UA" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_thrGQFpGEeqv8eaIcZt9UA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_qrWZYVpGEeqv8eaIcZt9UA" x="1" y="58"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_qrVyUVpGEeqv8eaIcZt9UA"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_vl43QLhUEemnErsCyDLyRA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qrVyUlpGEeqv8eaIcZt9UA" points="[194, 200, -643984, -643984]$[0, 0, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tiT_cFpGEeqv8eaIcZt9UA" id="(0.47904191616766467,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tiUmgFpGEeqv8eaIcZt9UA" id="(0.6,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_soKEUFpGEeqv8eaIcZt9UA" type="Generalization_Edge" source="_lzum8Ke8EemiOZ_hb7cBOg" target="_sntYYFpGEeqv8eaIcZt9UA">
+      <children xmi:type="notation:DecorationNode" xmi:id="_soKEU1pGEeqv8eaIcZt9UA" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_vdRQQFpGEeqv8eaIcZt9UA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_soKEVFpGEeqv8eaIcZt9UA" x="-1" y="58"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_soKEUVpGEeqv8eaIcZt9UA"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_pWYoELhUEemnErsCyDLyRA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_soKEUlpGEeqv8eaIcZt9UA" points="[420, 215, -643984, -643984]$[0, 0, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vderoFpGEeqv8eaIcZt9UA" id="(0.44776119402985076,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vdfSsFpGEeqv8eaIcZt9UA" id="(0.5,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_1LvGVFrzEeq5coEOWsxi4A" type="StereotypeCommentLink" source="_k2j0EKe8EemiOZ_hb7cBOg" target="_1LvGUFrzEeq5coEOWsxi4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_1LvGVVrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_1LvGWVrzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1LvGVlrzEeq5coEOWsxi4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1LvGV1rzEeq5coEOWsxi4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1LvGWFrzEeq5coEOWsxi4A"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_Na8KsLOPEemyjo40BHcr6w" type="PapyrusUMLProfileDiagram" name="FromPropan" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_Pia0kLOPEemyjo40BHcr6w" type="Class_MetaclassShape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_PiftELOPEemyjo40BHcr6w" type="Class_MetaclassNameLabel"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pia0kbOPEemyjo40BHcr6w" x="160" y="60" width="801"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_xqdkALOnEemyjo40BHcr6w" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xqeLELOnEemyjo40BHcr6w" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xqeLEbOnEemyjo40BHcr6w" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_3XhNcLOnEemyjo40BHcr6w" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_3XTLALOnEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_3XhNcbOnEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_8gcPELOnEemyjo40BHcr6w" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_8gQo4LOnEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_8gcPEbOnEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="__rmjgLOnEemyjo40BHcr6w" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#__rZIILOnEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="__rmjgbOnEemyjo40BHcr6w"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xqeLErOnEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xqeLE7OnEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xqeLFLOnEemyjo40BHcr6w"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xqeLFbOnEemyjo40BHcr6w"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xqeyILOnEemyjo40BHcr6w" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xqeyIbOnEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xqeyIrOnEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xqeyI7OnEemyjo40BHcr6w"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xqeyJLOnEemyjo40BHcr6w"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_xqHlwLOnEemyjo40BHcr6w"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xqdkAbOnEemyjo40BHcr6w" x="160" y="240" width="241" height="101"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_aQiawLOoEemyjo40BHcr6w" type="Enumeration_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_aQjo4LOoEemyjo40BHcr6w" type="Enumeration_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_aQjo4bOoEemyjo40BHcr6w" type="Enumeration_LiteralCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_bnV1oLOoEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_bnMrsLOoEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_bnV1obOoEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_desY0LOoEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_demSMLOoEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_desY0bOoEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_gt_mYLOoEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_gt1OULOoEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_gt_mYbOoEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_iMOe8LOoEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_iMCRsLOoEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_iMOe8bOoEemyjo40BHcr6w"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_aQjo4rOoEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_aQjo47OoEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_aQjo5LOoEemyjo40BHcr6w"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aQjo5bOoEemyjo40BHcr6w"/>
+      </children>
+      <element xmi:type="uml:Enumeration" href="pdp4engReqGDPR.profile.uml#_aQdiQLOoEemyjo40BHcr6w"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aQjB0LOoEemyjo40BHcr6w" x="160" y="400"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_mBjKsLOoEemyjo40BHcr6w" type="Enumeration_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_mBjxwLOoEemyjo40BHcr6w" type="Enumeration_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_mBjxwbOoEemyjo40BHcr6w" type="Enumeration_LiteralCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_nOMkALOoEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_nOEoMLOoEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_nOMkAbOoEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_obYI0LOoEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_obRbILOoEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_obYI0bOoEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_p2ajcLOoEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_p2OWMLOoEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_p2ajcbOoEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_reVjgLOoEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_reKkYLOoEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_reVjgbOoEemyjo40BHcr6w"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_mBjxwrOoEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_mBjxw7OoEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_mBjxxLOoEemyjo40BHcr6w"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mBjxxbOoEemyjo40BHcr6w"/>
+      </children>
+      <element xmi:type="uml:Enumeration" href="pdp4engReqGDPR.profile.uml#_mBgucLOoEemyjo40BHcr6w"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mBjKsbOoEemyjo40BHcr6w" x="280" y="400"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_ASa2cLOpEemyjo40BHcr6w" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_ASa2crOpEemyjo40BHcr6w" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_ASbdgLOpEemyjo40BHcr6w" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_Gk12wLOpEemyjo40BHcr6w" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_GknNQLOpEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Gk12wbOpEemyjo40BHcr6w"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_ASbdgbOpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_ASbdgrOpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_ASbdg7OpEemyjo40BHcr6w"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ASbdhLOpEemyjo40BHcr6w"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_ASbdhbOpEemyjo40BHcr6w" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_ASbdhrOpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_ASbdh7OpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_ASbdiLOpEemyjo40BHcr6w"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ASbdibOpEemyjo40BHcr6w"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_ASV98LOpEemyjo40BHcr6w"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ASa2cbOpEemyjo40BHcr6w" x="420" y="240"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_MHaHcLOpEemyjo40BHcr6w" type="Enumeration_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_MHaugLOpEemyjo40BHcr6w" type="Enumeration_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_MHaugbOpEemyjo40BHcr6w" type="Enumeration_LiteralCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_OQi-MLOpEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_OQQDQLOpEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_OQi-MbOpEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_QFEP0LOpEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_QE4CkLOpEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_QFEP0bOpEemyjo40BHcr6w"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_Rf-HkLOpEemyjo40BHcr6w" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_Rf0WkLOpEemyjo40BHcr6w"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Rf-HkbOpEemyjo40BHcr6w"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_MHaugrOpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_MHaug7OpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_MHauhLOpEemyjo40BHcr6w"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MHauhbOpEemyjo40BHcr6w"/>
+      </children>
+      <element xmi:type="uml:Enumeration" href="pdp4engReqGDPR.profile.uml#_MHY5ULOpEemyjo40BHcr6w"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MHaHcbOpEemyjo40BHcr6w" x="440" y="400"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_lCOmQLOpEemyjo40BHcr6w" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_lCOmQrOpEemyjo40BHcr6w" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_lCPNULOpEemyjo40BHcr6w" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_lCPNUbOpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_lCPNUrOpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_lCPNU7OpEemyjo40BHcr6w"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lCPNVLOpEemyjo40BHcr6w"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_lCPNVbOpEemyjo40BHcr6w" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_lCPNVrOpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_lCPNV7OpEemyjo40BHcr6w"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_lCPNWLOpEemyjo40BHcr6w"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lCPNWbOpEemyjo40BHcr6w"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_lCKU0LOpEemyjo40BHcr6w"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lCOmQbOpEemyjo40BHcr6w" x="600" y="240"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_TZmgwMQSEemLrKmPnGqBjA" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_TZnH0MQSEemLrKmPnGqBjA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_TZnH0cQSEemLrKmPnGqBjA" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_W0ViQMQSEemLrKmPnGqBjA" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_Wz1L8MQSEemLrKmPnGqBjA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_W0ViQcQSEemLrKmPnGqBjA"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_cSIAoMQSEemLrKmPnGqBjA" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_cRwNMMQSEemLrKmPnGqBjA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_cSIAocQSEemLrKmPnGqBjA"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_TZnH0sQSEemLrKmPnGqBjA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_TZnH08QSEemLrKmPnGqBjA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_TZnH1MQSEemLrKmPnGqBjA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TZnH1cQSEemLrKmPnGqBjA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_TZnH1sQSEemLrKmPnGqBjA" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_TZnH18QSEemLrKmPnGqBjA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_TZnH2MQSEemLrKmPnGqBjA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_TZnH2cQSEemLrKmPnGqBjA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TZnH2sQSEemLrKmPnGqBjA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_TZfzEMQSEemLrKmPnGqBjA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TZmgwcQSEemLrKmPnGqBjA" x="720" y="240" height="101"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_1ipKc1rzEeq5coEOWsxi4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_1ipKdFrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_1ipxgFrzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1ipKdVrzEeq5coEOWsxi4A" x="360" y="60"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_Na8KsbOPEemyjo40BHcr6w" name="diagram_compatibility_version" stringValue="1.4.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_Na8KsrOPEemyjo40BHcr6w"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_Na8Ks7OPEemyjo40BHcr6w" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+      <owner xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    </styles>
+    <element xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    <edges xmi:type="notation:Connector" xmi:id="_WVWiILOpEemyjo40BHcr6w" type="Extension_Edge" source="_ASa2cLOpEemyjo40BHcr6w" target="_Pia0kLOPEemyjo40BHcr6w">
+      <styles xmi:type="notation:FontStyle" xmi:id="_WVWiIbOpEemyjo40BHcr6w"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_WU-usLOpEemyjo40BHcr6w"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WVWiIrOpEemyjo40BHcr6w" points="[920, 240, -643984, -643984]$[540, 112, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WV7J4LOpEemyjo40BHcr6w" id="(0.5095541401273885,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WV7w8LOpEemyjo40BHcr6w" id="(0.42446941323345816,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_XBJ4MLOpEemyjo40BHcr6w" type="Extension_Edge" source="_xqdkALOnEemyjo40BHcr6w" target="_Pia0kLOPEemyjo40BHcr6w">
+      <styles xmi:type="notation:FontStyle" xmi:id="_XBJ4MbOpEemyjo40BHcr6w"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_XA5ZgLOpEemyjo40BHcr6w"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XBJ4MrOpEemyjo40BHcr6w" points="[280, 240, -643984, -643984]$[500, 112, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBeBQLOpEemyjo40BHcr6w" id="(0.4979253112033195,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBeBQbOpEemyjo40BHcr6w" id="(0.149812734082397,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_nE2lULOpEemyjo40BHcr6w" type="Extension_Edge" source="_lCOmQLOpEemyjo40BHcr6w" target="_Pia0kLOPEemyjo40BHcr6w">
+      <styles xmi:type="notation:FontStyle" xmi:id="_nE2lUbOpEemyjo40BHcr6w"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_nEicQLOpEemyjo40BHcr6w"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nE2lUrOpEemyjo40BHcr6w" points="[1240, 240, -643984, -643984]$[560, 112, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nFZX4LOpEemyjo40BHcr6w" id="(0.4,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nFZX4bOpEemyjo40BHcr6w" id="(0.599250936329588,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_2-6RIM16EemIGZzcx_n5Ew" type="Extension_Edge" source="_TZmgwMQSEemLrKmPnGqBjA" target="_Pia0kLOPEemyjo40BHcr6w">
+      <styles xmi:type="notation:FontStyle" xmi:id="_2-6RIc16EemIGZzcx_n5Ew"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_298n0M16EemIGZzcx_n5Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2-6RIs16EemIGZzcx_n5Ew" points="[800, 240, -643984, -643984]$[800, 110, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2_1eMM16EemIGZzcx_n5Ew" id="(0.4678362573099415,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2_2FQM16EemIGZzcx_n5Ew" id="(0.7990012484394506,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_1ipxgVrzEeq5coEOWsxi4A" type="StereotypeCommentLink" source="_Pia0kLOPEemyjo40BHcr6w" target="_1ipKc1rzEeq5coEOWsxi4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_1ipxglrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_1ipxhlrzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1ipxg1rzEeq5coEOWsxi4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1ipxhFrzEeq5coEOWsxi4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1ipxhVrzEeq5coEOWsxi4A"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_cigdoMQgEemOUp1qx0PUxQ" type="PapyrusUMLProfileDiagram" name="Structuration" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_eE4PUMQgEemOUp1qx0PUxQ" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_eE6rkMQgEemOUp1qx0PUxQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_eE6rkcQgEemOUp1qx0PUxQ" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_eE6rksQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_eE6rk8QgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_eE6rlMQgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eE6rlcQgEemOUp1qx0PUxQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_eE7SoMQgEemOUp1qx0PUxQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_eE7SocQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_eE7SosQgEemOUp1qx0PUxQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_eE7So8QgEemOUp1qx0PUxQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eE7SpMQgEemOUp1qx0PUxQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_eEo-wMQgEemOUp1qx0PUxQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eE4PUcQgEemOUp1qx0PUxQ" x="480" y="140" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_iPICMMQgEemOUp1qx0PUxQ" type="Class_MetaclassShape">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iPLFgMQgEemOUp1qx0PUxQ" source="Stereotype_Annotation">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iPLskMQgEemOUp1qx0PUxQ" key="StereotypeWithQualifiedNameList" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iPLskcQgEemOUp1qx0PUxQ" key="StereotypeList" value="StandardProfile::Metaclass"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iPLsksQgEemOUp1qx0PUxQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iPLsk8QgEemOUp1qx0PUxQ" key="PropStereoDisplay" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iPLslMQgEemOUp1qx0PUxQ" key="StereotypePropertyLocation" value="Compartment"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_iPIpQMQgEemOUp1qx0PUxQ" type="Class_MetaclassNameLabel"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iPIpQcQgEemOUp1qx0PUxQ" x="120" y="40" width="1361"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_D0BiYM17EemIGZzcx_n5Ew" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_D0BiYs17EemIGZzcx_n5Ew" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_D0BiY817EemIGZzcx_n5Ew" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_D0BiZM17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_D0BiZc17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_D0BiZs17EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0BiZ817EemIGZzcx_n5Ew"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_D0BiaM17EemIGZzcx_n5Ew" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_D0Biac17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_D0Bias17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_D0Bia817EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0BibM17EemIGZzcx_n5Ew"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_Dz_GIM17EemIGZzcx_n5Ew"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D0BiYc17EemIGZzcx_n5Ew" x="120" y="340" width="161" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_GjDUcM17EemIGZzcx_n5Ew" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_GjDUcs17EemIGZzcx_n5Ew" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_GjDUc817EemIGZzcx_n5Ew" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_GjDUdM17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_GjDUdc17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_GjDUds17EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GjDUd817EemIGZzcx_n5Ew"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_GjDUeM17EemIGZzcx_n5Ew" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_GjDUec17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_GjDUes17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_GjDUe817EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GjDUfM17EemIGZzcx_n5Ew"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_GjCGUM17EemIGZzcx_n5Ew"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GjDUcc17EemIGZzcx_n5Ew" x="800" y="140" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_JVV14M17EemIGZzcx_n5Ew" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_JVV14s17EemIGZzcx_n5Ew" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_JVV14817EemIGZzcx_n5Ew" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_JVV15M17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_JVV15c17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_JVV15s17EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JVV15817EemIGZzcx_n5Ew"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_JVV16M17EemIGZzcx_n5Ew" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_JVV16c17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_JVV16s17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_JVV16817EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JVV17M17EemIGZzcx_n5Ew"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_JVUnwM17EemIGZzcx_n5Ew"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JVV14c17EemIGZzcx_n5Ew" x="940" y="140" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_1giZMM17EemIGZzcx_n5Ew" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_1gjAQM17EemIGZzcx_n5Ew" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_1gjAQc17EemIGZzcx_n5Ew" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_1gjAQs17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_1gjAQ817EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_1gjARM17EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1gjARc17EemIGZzcx_n5Ew"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_1gkOYM17EemIGZzcx_n5Ew" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_1gkOYc17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_1gkOYs17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_1gkOY817EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1gkOZM17EemIGZzcx_n5Ew"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_1geu0M17EemIGZzcx_n5Ew"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1giZMc17EemIGZzcx_n5Ew" x="1080" y="140" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_35-80M17EemIGZzcx_n5Ew" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_35-80s17EemIGZzcx_n5Ew" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_35_j4M17EemIGZzcx_n5Ew" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_35_j4c17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_35_j4s17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_35_j4817EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_35_j5M17EemIGZzcx_n5Ew"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_35_j5c17EemIGZzcx_n5Ew" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_35_j5s17EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_35_j5817EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_35_j6M17EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_35_j6c17EemIGZzcx_n5Ew"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_359HoM17EemIGZzcx_n5Ew"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_35-80c17EemIGZzcx_n5Ew" x="1300" y="140" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_nW65QM4iEemA--Akpl3qeg" type="Class_MetaclassShape">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nW_KsM4iEemA--Akpl3qeg" source="Stereotype_Annotation">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nW_Ksc4iEemA--Akpl3qeg" key="StereotypeWithQualifiedNameList" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nW_Kss4iEemA--Akpl3qeg" key="StereotypeList" value="StandardProfile::Metaclass"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nW_Ks84iEemA--Akpl3qeg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nW_KtM4iEemA--Akpl3qeg" key="PropStereoDisplay" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nW_Ktc4iEemA--Akpl3qeg" key="StereotypePropertyLocation" value="Compartment"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_nW98kM4iEemA--Akpl3qeg" type="Class_MetaclassNameLabel"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nW-joM4iEemA--Akpl3qeg" x="120" y="220" width="161"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_qZFCsM4iEemA--Akpl3qeg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_qZFCss4iEemA--Akpl3qeg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_qZFCs84iEemA--Akpl3qeg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_qZFCtM4iEemA--Akpl3qeg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_qZFCtc4iEemA--Akpl3qeg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_qZFCts4iEemA--Akpl3qeg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qZFCt84iEemA--Akpl3qeg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_qZFCuM4iEemA--Akpl3qeg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_qZFCuc4iEemA--Akpl3qeg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_qZFCus4iEemA--Akpl3qeg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_qZFCu84iEemA--Akpl3qeg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qZFCvM4iEemA--Akpl3qeg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_qZAxQM4iEemA--Akpl3qeg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qZFCsc4iEemA--Akpl3qeg" x="660" y="140" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_0-YSUO8wEemMQJ9VTbRPgA" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_0-bVoO8wEemMQJ9VTbRPgA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_0-bVoe8wEemMQJ9VTbRPgA" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_0-bVou8wEemMQJ9VTbRPgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_0-bVo-8wEemMQJ9VTbRPgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_0-bVpO8wEemMQJ9VTbRPgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-bVpe8wEemMQJ9VTbRPgA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_0-bVpu8wEemMQJ9VTbRPgA" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_0-bVp-8wEemMQJ9VTbRPgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_0-bVqO8wEemMQJ9VTbRPgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_0-bVqe8wEemMQJ9VTbRPgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-bVqu8wEemMQJ9VTbRPgA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_0-GlgO8wEemMQJ9VTbRPgA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0-YSUe8wEemMQJ9VTbRPgA" x="300" y="140" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_1dR00O8wEemMQJ9VTbRPgA" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_1dR00u8wEemMQJ9VTbRPgA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_1dR00-8wEemMQJ9VTbRPgA" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_1dR01O8wEemMQJ9VTbRPgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_1dR01e8wEemMQJ9VTbRPgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_1dR01u8wEemMQJ9VTbRPgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1dR01-8wEemMQJ9VTbRPgA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_1dR02O8wEemMQJ9VTbRPgA" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_1dR02e8wEemMQJ9VTbRPgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_1dR02u8wEemMQJ9VTbRPgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_1dR02-8wEemMQJ9VTbRPgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1dR03O8wEemMQJ9VTbRPgA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_1dP_oO8wEemMQJ9VTbRPgA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1dR00e8wEemMQJ9VTbRPgA" x="100" y="140" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_1t5_QFrzEeq5coEOWsxi4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_1t5_QVrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_1t5_Q1rzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1t5_QlrzEeq5coEOWsxi4A" x="320" y="40"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_1uHaoFrzEeq5coEOWsxi4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_1uHaoVrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_1uHao1rzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1uHaolrzEeq5coEOWsxi4A" x="320" y="220"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_cigdocQgEemOUp1qx0PUxQ" name="diagram_compatibility_version" stringValue="1.4.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_cigdosQgEemOUp1qx0PUxQ"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_cigdo8QgEemOUp1qx0PUxQ" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+      <owner xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    </styles>
+    <element xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    <edges xmi:type="notation:Connector" xmi:id="_jNRFcMQgEemOUp1qx0PUxQ" type="Extension_Edge" source="_eE4PUMQgEemOUp1qx0PUxQ" target="_iPICMMQgEemOUp1qx0PUxQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_jNRFccQgEemOUp1qx0PUxQ"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_jMaJ0MQgEemOUp1qx0PUxQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jNRFcsQgEemOUp1qx0PUxQ" points="[200, 180, -643984, -643984]$[200, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jNo44MQgEemOUp1qx0PUxQ" id="(0.42857142857142855,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jNo44cQgEemOUp1qx0PUxQ" id="(0.3085966201322557,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_VfGdAM17EemIGZzcx_n5Ew" type="Extension_Edge" source="_GjDUcM17EemIGZzcx_n5Ew" target="_iPICMMQgEemOUp1qx0PUxQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_VfGdAc17EemIGZzcx_n5Ew"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_Ve5BoM17EemIGZzcx_n5Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VfGdAs17EemIGZzcx_n5Ew" points="[520, 180, -643984, -643984]$[520, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VfvWMM17EemIGZzcx_n5Ew" id="(0.6,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VfvWMc17EemIGZzcx_n5Ew" id="(0.5437178545187362,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_WQRbQM17EemIGZzcx_n5Ew" type="Extension_Edge" source="_JVV14M17EemIGZzcx_n5Ew" target="_iPICMMQgEemOUp1qx0PUxQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_WQRbQc17EemIGZzcx_n5Ew"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_WQEm8M17EemIGZzcx_n5Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WQRbQs17EemIGZzcx_n5Ew" points="[620, 180, -643984, -643984]$[620, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WQh58M17EemIGZzcx_n5Ew" id="(0.36363636363636365,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WQjIEM17EemIGZzcx_n5Ew" id="(0.6318883174136665,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_7s7C8M17EemIGZzcx_n5Ew" type="Extension_Edge" source="_35-80M17EemIGZzcx_n5Ew" target="_iPICMMQgEemOUp1qx0PUxQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_7s7C8c17EemIGZzcx_n5Ew"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_7srLUM17EemIGZzcx_n5Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7s7C8s17EemIGZzcx_n5Ew" points="[1380, 180, -643984, -643984]$[1380, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7tMvwM17EemIGZzcx_n5Ew" id="(0.3468208092485549,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7tMvwc17EemIGZzcx_n5Ew" id="(0.9110947832476121,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_81Zt8M17EemIGZzcx_n5Ew" type="Extension_Edge" source="_1giZMM17EemIGZzcx_n5Ew" target="_iPICMMQgEemOUp1qx0PUxQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_81Zt8c17EemIGZzcx_n5Ew"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_81MSkM17EemIGZzcx_n5Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_81Zt8s17EemIGZzcx_n5Ew" points="[1200, 180, -643984, -643984]$[1200, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_81w6UM17EemIGZzcx_n5Ew" id="(0.45454545454545453,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_81w6Uc17EemIGZzcx_n5Ew" id="(0.7641440117560617,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_ps4rEM4iEemA--Akpl3qeg" type="Extension_Edge" source="_D0BiYM17EemIGZzcx_n5Ew" target="_nW65QM4iEemA--Akpl3qeg">
+      <styles xmi:type="notation:FontStyle" xmi:id="_ps4rEc4iEemA--Akpl3qeg"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_psS1MM4iEemA--Akpl3qeg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ps4rEs4iEemA--Akpl3qeg" points="[240, 240, -643984, -643984]$[500, 300, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ptjZcM4iEemA--Akpl3qeg" id="(0.4968944099378882,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ptjZcc4iEemA--Akpl3qeg" id="(0.4968944099378882,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_s1go4M4iEemA--Akpl3qeg" type="Extension_Edge" source="_qZFCsM4iEemA--Akpl3qeg" target="_iPICMMQgEemOUp1qx0PUxQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_s1go4c4iEemA--Akpl3qeg"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_s08BIM4iEemA--Akpl3qeg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s1go4s4iEemA--Akpl3qeg" points="[360, 180, -643984, -643984]$[360, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s2SsAM4iEemA--Akpl3qeg" id="(0.6,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s2SsAc4iEemA--Akpl3qeg" id="(0.440852314474651,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_5dTUsO8wEemMQJ9VTbRPgA" type="Extension_Edge" source="_0-YSUO8wEemMQJ9VTbRPgA" target="_iPICMMQgEemOUp1qx0PUxQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_5dTUse8wEemMQJ9VTbRPgA"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_5cGa0O8wEemMQJ9VTbRPgA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5dTUsu8wEemMQJ9VTbRPgA" points="[160, 320, -643984, -643984]$[160, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5eQ-AO8wEemMQJ9VTbRPgA" id="(0.5633802816901409,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5eSMIO8wEemMQJ9VTbRPgA" id="(0.19103600293901543,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_6frXsO8wEemMQJ9VTbRPgA" type="Extension_Edge" source="_1dR00O8wEemMQJ9VTbRPgA" target="_iPICMMQgEemOUp1qx0PUxQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_6frXse8wEemMQJ9VTbRPgA"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_6er5MO8wEemMQJ9VTbRPgA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6frXsu8wEemMQJ9VTbRPgA" points="[140, 480, -643984, -643984]$[140, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6hA0cO8wEemMQJ9VTbRPgA" id="(0.36363636363636365,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6hA0ce8wEemMQJ9VTbRPgA" id="(0.029390154298310066,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_1t5_RFrzEeq5coEOWsxi4A" type="StereotypeCommentLink" source="_iPICMMQgEemOUp1qx0PUxQ" target="_1t5_QFrzEeq5coEOWsxi4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_1t5_RVrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_1t5_SVrzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1t5_RlrzEeq5coEOWsxi4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1t5_R1rzEeq5coEOWsxi4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1t5_SFrzEeq5coEOWsxi4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_1uHapFrzEeq5coEOWsxi4A" type="StereotypeCommentLink" source="_nW65QM4iEemA--Akpl3qeg" target="_1uHaoFrzEeq5coEOWsxi4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_1uHapVrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_1uIBslrzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1uHaplrzEeq5coEOWsxi4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1uIBsFrzEeq5coEOWsxi4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1uIBsVrzEeq5coEOWsxi4A"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_CRva0M18EemIGZzcx_n5Ew" type="PapyrusUMLProfileDiagram" name="PropanRequirementCategory" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_FitcUM18EemIGZzcx_n5Ew" type="Class_MetaclassShape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_FitcUs18EemIGZzcx_n5Ew" type="Class_MetaclassNameLabel"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FitcUc18EemIGZzcx_n5Ew" x="400" y="40" width="581"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_JemDEM18EemIGZzcx_n5Ew" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_JemqIM18EemIGZzcx_n5Ew" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_JemqIc18EemIGZzcx_n5Ew" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_ZvISUM18EemIGZzcx_n5Ew" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_ZvDZ0M18EemIGZzcx_n5Ew"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_ZvISUc18EemIGZzcx_n5Ew"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_JemqIs18EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_JemqI818EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_JemqJM18EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JemqJc18EemIGZzcx_n5Ew"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_JemqJs18EemIGZzcx_n5Ew" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_JemqJ818EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_JemqKM18EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_JemqKc18EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JemqKs18EemIGZzcx_n5Ew"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_Jek08M18EemIGZzcx_n5Ew"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JemDEc18EemIGZzcx_n5Ew" x="380" y="340" width="221"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_SD_WIM19EemIGZzcx_n5Ew" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_SD_9MM19EemIGZzcx_n5Ew" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_SD_9Mc19EemIGZzcx_n5Ew" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_7PUEMM4bEemIGZzcx_n5Ew" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_7PNWgM4bEemIGZzcx_n5Ew"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_7PUEMc4bEemIGZzcx_n5Ew"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_OcBJoM4cEemIGZzcx_n5Ew" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_Ob3_sM4cEemIGZzcx_n5Ew"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_OcBJoc4cEemIGZzcx_n5Ew"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_EhiBAM4dEemIGZzcx_n5Ew" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_EhSJYM4dEemIGZzcx_n5Ew"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_EhiBAc4dEemIGZzcx_n5Ew"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_SD_9Ms19EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_SD_9M819EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_SD_9NM19EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SD_9Nc19EemIGZzcx_n5Ew"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_SD_9Ns19EemIGZzcx_n5Ew" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_SD_9N819EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_SD_9OM19EemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_SD_9Oc19EemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SD_9Os19EemIGZzcx_n5Ew"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_SD9g8M19EemIGZzcx_n5Ew"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SD_WIc19EemIGZzcx_n5Ew" x="200" y="180" width="581" height="101"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_p8SAsM4cEemIGZzcx_n5Ew" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_p8SAss4cEemIGZzcx_n5Ew" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_p8SnwM4cEemIGZzcx_n5Ew" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_tWCKwM4cEemIGZzcx_n5Ew" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_tV7dEM4cEemIGZzcx_n5Ew"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_tWCKwc4cEemIGZzcx_n5Ew"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_p8Snwc4cEemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_p8Snws4cEemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_p8Snw84cEemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p8SnxM4cEemIGZzcx_n5Ew"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_p8Snxc4cEemIGZzcx_n5Ew" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_p8Snxs4cEemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_p8Snx84cEemIGZzcx_n5Ew"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_p8SnyM4cEemIGZzcx_n5Ew"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p8Snyc4cEemIGZzcx_n5Ew"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_p8QykM4cEemIGZzcx_n5Ew"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p8SAsc4cEemIGZzcx_n5Ew" x="300" y="520"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_qVyWYNoQEem5SNFcfg-vgA" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_qV1ZsNoQEem5SNFcfg-vgA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_qV1ZsdoQEem5SNFcfg-vgA" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_8N6OgNoQEem5SNFcfg-vgA" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_8NjCINoQEem5SNFcfg-vgA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_8N6OgdoQEem5SNFcfg-vgA"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_qV1ZstoQEem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_qV1Zs9oQEem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_qV1ZtNoQEem5SNFcfg-vgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qV1ZtdoQEem5SNFcfg-vgA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_qV1ZttoQEem5SNFcfg-vgA" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_qV1Zt9oQEem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_qV1ZuNoQEem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_qV1ZudoQEem5SNFcfg-vgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qV1ZutoQEem5SNFcfg-vgA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_qVbxENoQEem5SNFcfg-vgA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qVyWYdoQEem5SNFcfg-vgA" x="860" y="180"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_Kjd-0NoREem5SNFcfg-vgA" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_KjfM8NoREem5SNFcfg-vgA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_KjfM8doREem5SNFcfg-vgA" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_KjfM8toREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_KjfM89oREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_KjfM9NoREem5SNFcfg-vgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KjfM9doREem5SNFcfg-vgA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_KjfM9toREem5SNFcfg-vgA" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_KjfM99oREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_KjfM-NoREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_KjfM-doREem5SNFcfg-vgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KjfM-toREem5SNFcfg-vgA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_KjcJoNoREem5SNFcfg-vgA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kjd-0doREem5SNFcfg-vgA" x="640" y="340"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_UvE3MNoREem5SNFcfg-vgA" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_UvE3MtoREem5SNFcfg-vgA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UvFeQNoREem5SNFcfg-vgA" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_XQFbYNoREem5SNFcfg-vgA" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_XPx5YNoREem5SNFcfg-vgA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_XQFbYdoREem5SNFcfg-vgA"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_UvFeQdoREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UvFeQtoREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UvFeQ9oREem5SNFcfg-vgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UvFeRNoREem5SNFcfg-vgA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UvFeRdoREem5SNFcfg-vgA" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_UvFeRtoREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UvFeR9oREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UvFeSNoREem5SNFcfg-vgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UvFeSdoREem5SNFcfg-vgA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_UvCa8NoREem5SNFcfg-vgA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UvE3MdoREem5SNFcfg-vgA" x="160" y="340"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_Y0KdQNoREem5SNFcfg-vgA" type="Enumeration_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Y0KdQtoREem5SNFcfg-vgA" type="Enumeration_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_Y0KdQ9oREem5SNFcfg-vgA" type="Enumeration_LiteralCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_byf2oNoREem5SNFcfg-vgA" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_byMUoNoREem5SNFcfg-vgA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_byf2odoREem5SNFcfg-vgA"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_c_IB0NoREem5SNFcfg-vgA" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_c-1t8NoREem5SNFcfg-vgA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_c_IB0doREem5SNFcfg-vgA"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_eQ-rQNoREem5SNFcfg-vgA" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_eQtlgNoREem5SNFcfg-vgA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_eQ-rQdoREem5SNFcfg-vgA"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_f6K2oNoREem5SNFcfg-vgA" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_f5rucNoREem5SNFcfg-vgA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_f6K2odoREem5SNFcfg-vgA"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_jk5b8NoREem5SNFcfg-vgA" type="EnumerationLiteral_LiteralLabel">
+          <element xmi:type="uml:EnumerationLiteral" href="pdp4engReqGDPR.profile.uml#_jko9QNoREem5SNFcfg-vgA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_jk5b8doREem5SNFcfg-vgA"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_Y0KdRNoREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_Y0KdRdoREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_Y0KdRtoREem5SNFcfg-vgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y0KdR9oREem5SNFcfg-vgA"/>
+      </children>
+      <element xmi:type="uml:Enumeration" href="pdp4engReqGDPR.profile.uml#_Y0Gy4NoREem5SNFcfg-vgA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y0KdQdoREem5SNFcfg-vgA" x="20" y="340"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_zWTfMNoREem5SNFcfg-vgA" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_zWTfMtoREem5SNFcfg-vgA" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_zWUGQNoREem5SNFcfg-vgA" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_zWUGQdoREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_zWUGQtoREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_zWUGQ9oREem5SNFcfg-vgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zWUGRNoREem5SNFcfg-vgA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_zWUGRdoREem5SNFcfg-vgA" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_zWUGRtoREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_zWUGR9oREem5SNFcfg-vgA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_zWUGSNoREem5SNFcfg-vgA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zWUGSdoREem5SNFcfg-vgA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_zWRqANoREem5SNFcfg-vgA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zWTfMdoREem5SNFcfg-vgA" x="540" y="520"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_13AQ4FrzEeq5coEOWsxi4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_13AQ4VrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_13AQ41rzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_13AQ4lrzEeq5coEOWsxi4A" x="600" y="40"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_CRva0c18EemIGZzcx_n5Ew" name="diagram_compatibility_version" stringValue="1.4.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_CRva0s18EemIGZzcx_n5Ew"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_CRva0818EemIGZzcx_n5Ew" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+      <owner xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    </styles>
+    <element xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    <edges xmi:type="notation:Connector" xmi:id="_PpV4oM19EemIGZzcx_n5Ew" type="Generalization_Edge" source="_JemDEM18EemIGZzcx_n5Ew" target="_SD_WIM19EemIGZzcx_n5Ew">
+      <children xmi:type="notation:DecorationNode" xmi:id="_PpWfsM19EemIGZzcx_n5Ew" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wyookNoREem5SNFcfg-vgA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_PpWfsc19EemIGZzcx_n5Ew" x="-1" y="58"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_PpV4oc19EemIGZzcx_n5Ew"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_PpOj4M19EemIGZzcx_n5Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PpV4os19EemIGZzcx_n5Ew" points="[500, 480, -643984, -643984]$[500, 443, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ppm-YM19EemIGZzcx_n5Ew" id="(0.45248868778280543,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PpnlcM19EemIGZzcx_n5Ew" id="(0.4819277108433735,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_TqYsMM19EemIGZzcx_n5Ew" type="Extension_Edge" source="_SD_WIM19EemIGZzcx_n5Ew" target="_FitcUM18EemIGZzcx_n5Ew">
+      <styles xmi:type="notation:FontStyle" xmi:id="_TqYsMc19EemIGZzcx_n5Ew"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_TqO7MM19EemIGZzcx_n5Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TqYsMs19EemIGZzcx_n5Ew" points="[480, 180, -643984, -643984]$[480, 96, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TqmHkM19EemIGZzcx_n5Ew" id="(0.5163511187607573,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TqmHkc19EemIGZzcx_n5Ew" id="(0.1721170395869191,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_yU1nEM4cEemIGZzcx_n5Ew" type="Generalization_Edge" source="_p8SAsM4cEemIGZzcx_n5Ew" target="_JemDEM18EemIGZzcx_n5Ew">
+      <children xmi:type="notation:DecorationNode" xmi:id="_yU1nE84cEemIGZzcx_n5Ew" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wzC4QNoREem5SNFcfg-vgA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_yU1nFM4cEemIGZzcx_n5Ew" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_yU1nEc4cEemIGZzcx_n5Ew"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_yUr2EM4cEemIGZzcx_n5Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yU1nEs4cEemIGZzcx_n5Ew" points="[500, 640, -643984, -643984]$[500, 583, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yVJwIM4cEemIGZzcx_n5Ew" id="(0.5847953216374269,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yVJwIc4cEemIGZzcx_n5Ew" id="(0.45248868778280543,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_sKzXQNoQEem5SNFcfg-vgA" type="Extension_Edge" source="_qVyWYNoQEem5SNFcfg-vgA" target="_FitcUM18EemIGZzcx_n5Ew">
+      <styles xmi:type="notation:FontStyle" xmi:id="_sKzXQdoQEem5SNFcfg-vgA"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_sJ-Q0NoQEem5SNFcfg-vgA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sKzXQtoQEem5SNFcfg-vgA" points="[720, 180, -643984, -643984]$[560, 90, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sL904NoQEem5SNFcfg-vgA" id="(0.3508771929824561,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sL904doQEem5SNFcfg-vgA" id="(0.8950086058519794,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_PaoiENoREem5SNFcfg-vgA" type="Generalization_Edge" source="_Kjd-0NoREem5SNFcfg-vgA" target="_SD_WIM19EemIGZzcx_n5Ew">
+      <children xmi:type="notation:DecorationNode" xmi:id="_PaoiE9oREem5SNFcfg-vgA" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_P3rqcNoREem5SNFcfg-vgA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_PaoiFNoREem5SNFcfg-vgA" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_PaoiEdoREem5SNFcfg-vgA"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_PaTx8NoREem5SNFcfg-vgA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PaoiEtoREem5SNFcfg-vgA" points="[180, 200, -643984, -643984]$[460, 180, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PbjvINoREem5SNFcfg-vgA" id="(0.5298013245033113,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PbjvIdoREem5SNFcfg-vgA" id="(0.8950086058519794,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_l0690NoREem5SNFcfg-vgA" type="Generalization_Edge" source="_UvE3MNoREem5SNFcfg-vgA" target="_SD_WIM19EemIGZzcx_n5Ew">
+      <children xmi:type="notation:DecorationNode" xmi:id="_l06909oREem5SNFcfg-vgA" type="Generalization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_l0691NoREem5SNFcfg-vgA" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_l0690doREem5SNFcfg-vgA"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_l0guINoREem5SNFcfg-vgA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l0690toREem5SNFcfg-vgA" points="[240, 340, -643984, -643984]$[440, 281, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l14AENoREem5SNFcfg-vgA" id="(0.5,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l14AEdoREem5SNFcfg-vgA" id="(0.06884681583476764,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_2gFTkNoREem5SNFcfg-vgA" type="Generalization_Edge" source="_zWTfMNoREem5SNFcfg-vgA" target="_JemDEM18EemIGZzcx_n5Ew">
+      <children xmi:type="notation:DecorationNode" xmi:id="_2gFTk9oREem5SNFcfg-vgA" type="Generalization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_2gFTlNoREem5SNFcfg-vgA" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_2gFTkdoREem5SNFcfg-vgA"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_2f2DANoREem5SNFcfg-vgA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2gFTktoREem5SNFcfg-vgA" points="[560, 520, -643984, -643984]$[500, 440, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2goGINoREem5SNFcfg-vgA" id="(0.14285714285714285,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2goGIdoREem5SNFcfg-vgA" id="(0.5429864253393665,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_13AQ5FrzEeq5coEOWsxi4A" type="StereotypeCommentLink" source="_FitcUM18EemIGZzcx_n5Ew" target="_13AQ4FrzEeq5coEOWsxi4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_13AQ5VrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_13AQ6VrzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_13AQ5lrzEeq5coEOWsxi4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_13AQ51rzEeq5coEOWsxi4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_13AQ6FrzEeq5coEOWsxi4A"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_yqXHwOs_EemVOdTBOQoUcg" type="PapyrusUMLProfileDiagram" name="DFD profile" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_zYEiUOs_EemVOdTBOQoUcg" type="Stereotype_Shape" fillColor="8453888">
+      <children xmi:type="notation:DecorationNode" xmi:id="_zYEiUus_EemVOdTBOQoUcg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_zYFJYOs_EemVOdTBOQoUcg" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_zYFJYes_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_zYFJYus_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_zYFJY-s_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zYFJZOs_EemVOdTBOQoUcg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_zYFJZes_EemVOdTBOQoUcg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_zYFJZus_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_zYFJZ-s_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_zYFJaOs_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zYFJaes_EemVOdTBOQoUcg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_QiJakKIoEemN_tazoyo3PQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zYEiUes_EemVOdTBOQoUcg" x="280" y="260"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_0Etl4Os_EemVOdTBOQoUcg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_0Etl4us_EemVOdTBOQoUcg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_0Etl4-s_EemVOdTBOQoUcg" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_7lWQUOtAEemVOdTBOQoUcg" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_7lMfUOtAEemVOdTBOQoUcg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_7lWQUetAEemVOdTBOQoUcg"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_0Etl5Os_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_0Etl5es_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_0Etl5us_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0Etl5-s_EemVOdTBOQoUcg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_0EuM8Os_EemVOdTBOQoUcg" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_0EuM8es_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_0EuM8us_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_0EuM8-s_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EuM9Os_EemVOdTBOQoUcg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_bQqywKIoEemN_tazoyo3PQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0Etl4es_EemVOdTBOQoUcg" x="603" y="261"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_2jmqMOs_EemVOdTBOQoUcg" type="Stereotype_Shape" fillColor="8453888">
+      <children xmi:type="notation:DecorationNode" xmi:id="_2jmqMus_EemVOdTBOQoUcg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_2jmqM-s_EemVOdTBOQoUcg" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_2jmqNOs_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_2jmqNes_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_2jmqNus_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2jmqN-s_EemVOdTBOQoUcg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_2jmqOOs_EemVOdTBOQoUcg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_2jmqOes_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_2jmqOus_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_2jmqO-s_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2jmqPOs_EemVOdTBOQoUcg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_UjvkYOs9EemVOdTBOQoUcg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2jmqMes_EemVOdTBOQoUcg" x="40" y="260" width="120"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_3ZABIOs_EemVOdTBOQoUcg" type="Stereotype_Shape" fillColor="16777088">
+      <children xmi:type="notation:DecorationNode" xmi:id="_3ZAoMOs_EemVOdTBOQoUcg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_3ZAoMes_EemVOdTBOQoUcg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_3ZAoMus_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_3ZAoM-s_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_3ZAoNOs_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3ZAoNes_EemVOdTBOQoUcg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_3ZAoNus_EemVOdTBOQoUcg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_3ZAoN-s_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_3ZAoOOs_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_3ZAoOes_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3ZAoOus_EemVOdTBOQoUcg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pathmap://pdp4engreqprofile-COMMON/pdp4engreqprofileCommonGDPR.profile.uml#_QiJakKIoEemN_tazoyo3PQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3ZABIes_EemVOdTBOQoUcg" x="280" y="60" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_41miAOs_EemVOdTBOQoUcg" type="Stereotype_Shape" fillColor="16777088">
+      <children xmi:type="notation:DecorationNode" xmi:id="_41nJEOs_EemVOdTBOQoUcg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_41nJEes_EemVOdTBOQoUcg" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_41nJEus_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_41nJE-s_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_41nJFOs_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_41nJFes_EemVOdTBOQoUcg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_41nJFus_EemVOdTBOQoUcg" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_41nJF-s_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_41nJGOs_EemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_41nJGes_EemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_41nJGus_EemVOdTBOQoUcg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pathmap://pdp4engreqprofile-COMMON/pdp4engreqprofileCommonGDPR.profile.uml#_bQqywKIoEemN_tazoyo3PQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_41miAes_EemVOdTBOQoUcg" x="600" y="80" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_dFKEcOtAEemVOdTBOQoUcg" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_dFKrgOtAEemVOdTBOQoUcg" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_dFKrgetAEemVOdTBOQoUcg" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_iooeoOtBEemVOdTBOQoUcg" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_ioeGkOtBEemVOdTBOQoUcg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_iooeoetBEemVOdTBOQoUcg"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_dFKrgutAEemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_dFKrg-tAEemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_dFKrhOtAEemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dFKrhetAEemVOdTBOQoUcg"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_dFKrhutAEemVOdTBOQoUcg" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_dFKrh-tAEemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_dFKriOtAEemVOdTBOQoUcg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_dFKrietAEemVOdTBOQoUcg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dFKriutAEemVOdTBOQoUcg"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_dFI2UOtAEemVOdTBOQoUcg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dFKEcetAEemVOdTBOQoUcg" x="860" y="260"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_hT1EUOtAEemVOdTBOQoUcg" type="Class_MetaclassShape" fillColor="16777088">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hT1rYOtAEemVOdTBOQoUcg" source="Stereotype_Annotation">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hT2ScOtAEemVOdTBOQoUcg" key="StereotypeWithQualifiedNameList" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hT2ScetAEemVOdTBOQoUcg" key="StereotypeList" value="StandardProfile::Metaclass"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hT2ScutAEemVOdTBOQoUcg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hT2Sc-tAEemVOdTBOQoUcg" key="PropStereoDisplay" value=""/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hT2SdOtAEemVOdTBOQoUcg" key="StereotypePropertyLocation" value="Compartment"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_hT1EUutAEemVOdTBOQoUcg" type="Class_MetaclassNameLabel"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataStoreNode"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hT1EU-tAEemVOdTBOQoUcg" x="860" y="60"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_0J4nwFrzEeq5coEOWsxi4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_0J4nwVrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0J4nw1rzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataStoreNode"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0J4nwlrzEeq5coEOWsxi4A" x="1060" y="60"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_yqXHwes_EemVOdTBOQoUcg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_yqXHwus_EemVOdTBOQoUcg"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_yqXHw-s_EemVOdTBOQoUcg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+      <owner xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    </styles>
+    <element xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    <edges xmi:type="notation:Connector" xmi:id="_3aYhMOs_EemVOdTBOQoUcg" type="Generalization_Edge" source="_zYEiUOs_EemVOdTBOQoUcg" target="_3ZABIOs_EemVOdTBOQoUcg">
+      <children xmi:type="notation:DecorationNode" xmi:id="_3aYhM-s_EemVOdTBOQoUcg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_37CXMOs_EemVOdTBOQoUcg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3aYhNOs_EemVOdTBOQoUcg" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_3aYhMes_EemVOdTBOQoUcg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_pWYoELhUEemnErsCyDLyRA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3aYhMus_EemVOdTBOQoUcg" points="[285, 260, -643984, -643984]$[0, 0, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_37jUkOs_EemVOdTBOQoUcg" id="(0.47107438016528924,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_37j7oOs_EemVOdTBOQoUcg" id="(0.6,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_42UTsOs_EemVOdTBOQoUcg" type="Generalization_Edge" source="_0Etl4Os_EemVOdTBOQoUcg" target="_41miAOs_EemVOdTBOQoUcg">
+      <children xmi:type="notation:DecorationNode" xmi:id="_42U6wOs_EemVOdTBOQoUcg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_5KVb4Os_EemVOdTBOQoUcg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_42U6wes_EemVOdTBOQoUcg" x="1" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_42UTses_EemVOdTBOQoUcg"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_vl43QLhUEemnErsCyDLyRA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_42UTsus_EemVOdTBOQoUcg" points="[603, 276, -643984, -643984]$[0, 0, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5K5ckOs_EemVOdTBOQoUcg" id="(0.3413173652694611,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5K6DoOs_EemVOdTBOQoUcg" id="(0.6,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_9D_OAOs_EemVOdTBOQoUcg" type="Association_Edge" source="_zYEiUOs_EemVOdTBOQoUcg" target="_2jmqMOs_EemVOdTBOQoUcg">
+      <children xmi:type="notation:DecorationNode" xmi:id="_9D_1EOs_EemVOdTBOQoUcg" type="Association_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_9D_1Ees_EemVOdTBOQoUcg" y="60"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_9D_1Eus_EemVOdTBOQoUcg" type="Association_NameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_9D_1E-s_EemVOdTBOQoUcg" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_9D_1FOs_EemVOdTBOQoUcg" type="Association_TargetRoleLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_9D_1Fes_EemVOdTBOQoUcg" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_9D_1Fus_EemVOdTBOQoUcg" type="Association_SourceRoleLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_9D_1F-s_EemVOdTBOQoUcg" y="-20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_9D_1GOs_EemVOdTBOQoUcg" type="Association_SourceMultiplicityLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_9D_1Ges_EemVOdTBOQoUcg" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_9D_1Gus_EemVOdTBOQoUcg" type="Association_TargetMultiplicityLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_9D_1G-s_EemVOdTBOQoUcg" y="-20"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_9D_OAes_EemVOdTBOQoUcg"/>
+      <element xmi:type="uml:Association" href="pdp4engReqGDPR.profile.uml#_9DLVsOs_EemVOdTBOQoUcg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9D_OAus_EemVOdTBOQoUcg" points="[280, 300, -643984, -643984]$[160, 300, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9E_TkOs_EemVOdTBOQoUcg" id="(0.0,0.4)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9E_Tkes_EemVOdTBOQoUcg" id="(1.0,0.4)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_iM72kOtAEemVOdTBOQoUcg" type="Extension_Edge" source="_dFKEcOtAEemVOdTBOQoUcg" target="_hT1EUOtAEemVOdTBOQoUcg">
+      <styles xmi:type="notation:FontStyle" xmi:id="_iM72ketAEemVOdTBOQoUcg"/>
+      <element xmi:type="uml:Extension" href="pdp4engReqGDPR.profile.uml#_iMl4UOtAEemVOdTBOQoUcg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iM72kutAEemVOdTBOQoUcg" points="[920, 260, -643984, -643984]$[920, 110, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iNcM4OtAEemVOdTBOQoUcg" id="(0.4225352112676056,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iNcz8OtAEemVOdTBOQoUcg" id="(0.6,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_0J5O0FrzEeq5coEOWsxi4A" type="StereotypeCommentLink" source="_hT1EUOtAEemVOdTBOQoUcg" target="_0J4nwFrzEeq5coEOWsxi4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_0J5O0VrzEeq5coEOWsxi4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0J514FrzEeq5coEOWsxi4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataStoreNode"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0J5O0lrzEeq5coEOWsxi4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0J5O01rzEeq5coEOWsxi4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0J5O1FrzEeq5coEOWsxi4A"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_cvdskDeEEeq58cC05yunBQ" type="PapyrusUMLProfileDiagram" name="LawfulPrinciple" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_ldJOYDeEEeq58cC05yunBQ" type="Stereotype_Shape" fillColor="8453888">
+      <children xmi:type="notation:DecorationNode" xmi:id="_ldbiQDeEEeq58cC05yunBQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_ldbiQTeEEeq58cC05yunBQ" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_ldbiQjeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_ldbiQzeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_ldbiRDeEEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ldbiRTeEEeq58cC05yunBQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_ldcJUDeEEeq58cC05yunBQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_ldcJUTeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_ldcJUjeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_ldcJUzeEEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ldcJVDeEEeq58cC05yunBQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_b2rSgKe9EemiOZ_hb7cBOg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ldJOYTeEEeq58cC05yunBQ" x="488" y="112" height="49"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_pad_kDeEEeq58cC05yunBQ" type="Stereotype_Shape" fillColor="8453888">
+      <children xmi:type="notation:DecorationNode" xmi:id="_paemoDeEEeq58cC05yunBQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_paemoTeEEeq58cC05yunBQ" type="Stereotype_AttributeCompartment">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EuWngDeFEeq58cC05yunBQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EuXOkDeFEeq58cC05yunBQ" key="visible" value="true"/>
+        </eAnnotations>
+        <children xmi:type="notation:Shape" xmi:id="_GUiiMDeFEeq58cC05yunBQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_GUeQwDeFEeq58cC05yunBQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GUiiMTeFEeq58cC05yunBQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_paemojeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_paemozeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_paempDeEEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_paempTeEEeq58cC05yunBQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_paempjeEEeq58cC05yunBQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_paempzeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_paemqDeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_paemqTeEEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_paemqjeEEeq58cC05yunBQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_paWq0DeEEeq58cC05yunBQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pad_kTeEEeq58cC05yunBQ" x="120" y="240" height="61"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_zIsYYDeEEeq58cC05yunBQ" type="Stereotype_Shape" fillColor="16777088">
+      <children xmi:type="notation:DecorationNode" xmi:id="_zIsYYjeEEeq58cC05yunBQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_zIsYYzeEEeq58cC05yunBQ" visible="false" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_zIsYZDeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_zIsYZTeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_zIsYZjeEEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zIsYZzeEEeq58cC05yunBQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_zIsYaDeEEeq58cC05yunBQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_zIsYaTeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_zIsYajeEEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_zIsYazeEEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zIsYbDeEEeq58cC05yunBQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pathmap://pdp4engreqprofile-COMMON/pdp4engreqprofileCommonGDPR.profile.uml#_3gl34DbjEeqsGNzaceeV5g"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zIsYYTeEEeq58cC05yunBQ" x="120" y="400" height="41"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_3N-WQDeFEeq58cC05yunBQ" type="Stereotype_Shape" fillColor="8453888">
+      <children xmi:type="notation:DecorationNode" xmi:id="_3N-WQjeFEeq58cC05yunBQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_3N-WQzeFEeq58cC05yunBQ" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="__q5fQDeFEeq58cC05yunBQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#__qw8YDeFEeq58cC05yunBQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="__q5fQTeFEeq58cC05yunBQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_3N-WRDeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_3N-WRTeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_3N-WRjeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3N-WRzeFEeq58cC05yunBQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_3N-WSDeFEeq58cC05yunBQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_3N-WSTeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_3N-WSjeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_3N-WSzeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3N-WTDeFEeq58cC05yunBQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_3N8hEDeFEeq58cC05yunBQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3N-WQTeFEeq58cC05yunBQ" x="300" y="240" height="61"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_3rGXIDeFEeq58cC05yunBQ" type="Stereotype_Shape" fillColor="8453888">
+      <children xmi:type="notation:DecorationNode" xmi:id="_3rGXIjeFEeq58cC05yunBQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_3rGXIzeFEeq58cC05yunBQ" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_fqdzMDeGEeq58cC05yunBQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_fqXFgDeGEeq58cC05yunBQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_fqdzMTeGEeq58cC05yunBQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_3rG-MDeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_3rG-MTeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_3rG-MjeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3rG-MzeFEeq58cC05yunBQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_3rG-NDeFEeq58cC05yunBQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_3rG-NTeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_3rG-NjeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_3rG-NzeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3rG-ODeFEeq58cC05yunBQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_3rFJADeFEeq58cC05yunBQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3rGXITeFEeq58cC05yunBQ" x="480" y="240" height="61"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_4ImygDeFEeq58cC05yunBQ" type="Stereotype_Shape" fillColor="8453888">
+      <children xmi:type="notation:DecorationNode" xmi:id="_4InZkDeFEeq58cC05yunBQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_4InZkTeFEeq58cC05yunBQ" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_laTq4DeGEeq58cC05yunBQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_laJ54DeGEeq58cC05yunBQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_laTq4TeGEeq58cC05yunBQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_4InZkjeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_4InZkzeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_4InZlDeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4InZlTeFEeq58cC05yunBQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_4InZljeFEeq58cC05yunBQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_4InZlzeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_4InZmDeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_4InZmTeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4InZmjeFEeq58cC05yunBQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_4IlkYDeFEeq58cC05yunBQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ImygTeFEeq58cC05yunBQ" x="700" y="240" height="61"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_4kakwDeFEeq58cC05yunBQ" type="Stereotype_Shape" fillColor="8453888">
+      <children xmi:type="notation:DecorationNode" xmi:id="_4kakwjeFEeq58cC05yunBQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_4kakwzeFEeq58cC05yunBQ" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_qjytMDeGEeq58cC05yunBQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_qjqxYDeGEeq58cC05yunBQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qjytMTeGEeq58cC05yunBQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_4kakxDeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_4kakxTeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_4kakxjeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4kakxzeFEeq58cC05yunBQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_4kakyDeFEeq58cC05yunBQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_4kakyTeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_4kakyjeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_4kakyzeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4kakzDeFEeq58cC05yunBQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_4kYvkDeFEeq58cC05yunBQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4kakwTeFEeq58cC05yunBQ" x="960" y="240" height="61"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_5YDBIDeFEeq58cC05yunBQ" type="Stereotype_Shape" fillColor="8453888">
+      <children xmi:type="notation:DecorationNode" xmi:id="_5YDBIjeFEeq58cC05yunBQ" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_5YDBIzeFEeq58cC05yunBQ" type="Stereotype_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_yJuj0DeGEeq58cC05yunBQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="pdp4engReqGDPR.profile.uml#_yJmoADeGEeq58cC05yunBQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_yJuj0TeGEeq58cC05yunBQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_5YDBJDeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_5YDBJTeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_5YDBJjeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5YDBJzeFEeq58cC05yunBQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_5YDBKDeFEeq58cC05yunBQ" visible="false" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_5YDBKTeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_5YDBKjeFEeq58cC05yunBQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_5YDBKzeFEeq58cC05yunBQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5YDBLDeFEeq58cC05yunBQ"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pdp4engReqGDPR.profile.uml#_5YBzADeFEeq58cC05yunBQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5YDBITeFEeq58cC05yunBQ" x="1220" y="240" height="61"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_cvdskTeEEeq58cC05yunBQ" name="diagram_compatibility_version" stringValue="1.4.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_cvdskjeEEeq58cC05yunBQ"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_cvdskzeEEeq58cC05yunBQ" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+      <owner xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    </styles>
+    <element xmi:type="uml:Profile" href="pdp4engReqGDPR.profile.uml#pdp4engreqprofile"/>
+    <edges xmi:type="notation:Connector" xmi:id="_6VrjgDeEEeq58cC05yunBQ" type="Generalization_Edge" source="_pad_kDeEEeq58cC05yunBQ" target="_ldJOYDeEEeq58cC05yunBQ" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_6VsKkDeEEeq58cC05yunBQ" type="Generalization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_6VsKkTeEEeq58cC05yunBQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_6VrjgTeEEeq58cC05yunBQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_6Vf9UDeEEeq58cC05yunBQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6VrjgjeEEeq58cC05yunBQ" points="[180, 240, -643984, -643984]$[540, 161, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6V3wwDeEEeq58cC05yunBQ" id="(0.5714285714285714,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6V3wwTeEEeq58cC05yunBQ" id="(0.52,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_ZdUUcDeGEeq58cC05yunBQ" type="Generalization_Edge" source="_3N-WQDeFEeq58cC05yunBQ" target="_ldJOYDeEEeq58cC05yunBQ" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_ZdUUczeGEeq58cC05yunBQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_2gIjYDeGEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_ZdUUdDeGEeq58cC05yunBQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_ZdUUcTeGEeq58cC05yunBQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_ZdJ8YDeGEeq58cC05yunBQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZdUUcjeGEeq58cC05yunBQ" points="[380, 240, -643984, -643984]$[380, 200, -643984, -643984]$[540, 200, -643984, -643984]$[540, 161, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZdkzIDeGEeq58cC05yunBQ" id="(0.38461538461538464,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZdkzITeGEeq58cC05yunBQ" id="(0.52,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_Z2JEIDeGEeq58cC05yunBQ" type="Generalization_Edge" source="_3rGXIDeFEeq58cC05yunBQ" target="_ldJOYDeEEeq58cC05yunBQ" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Z2JEIzeGEeq58cC05yunBQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_2zK0IDeGEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Z2JEJDeGEeq58cC05yunBQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_Z2JEITeGEeq58cC05yunBQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_Z2BvYDeGEeq58cC05yunBQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z2JEIjeGEeq58cC05yunBQ" points="[620, 240, -643984, -643984]$[620, 200, -643984, -643984]$[540, 200, -643984, -643984]$[540, 161, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z2aJ4DeGEeq58cC05yunBQ" id="(0.47619047619047616,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z2aJ4TeGEeq58cC05yunBQ" id="(0.52,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_aWILwDeGEeq58cC05yunBQ" type="Generalization_Edge" source="_4ImygDeFEeq58cC05yunBQ" target="_ldJOYDeEEeq58cC05yunBQ" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_aWILwzeGEeq58cC05yunBQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_e3FOcDeGEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_aWILxDeGEeq58cC05yunBQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_aWILwTeGEeq58cC05yunBQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_aV4UIDeGEeq58cC05yunBQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aWILwjeGEeq58cC05yunBQ" points="[780, 240, -643984, -643984]$[780, 200, -643984, -643984]$[540, 200, -643984, -643984]$[540, 161, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aWWOMDeGEeq58cC05yunBQ" id="(0.5128205128205128,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aWWOMTeGEeq58cC05yunBQ" id="(0.52,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_a5sL0DeGEeq58cC05yunBQ" type="Generalization_Edge" source="_4kakwDeFEeq58cC05yunBQ" target="_ldJOYDeEEeq58cC05yunBQ" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_a5sL0zeGEeq58cC05yunBQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_eh6PsDeGEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_a5sL1DeGEeq58cC05yunBQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_a5sL0TeGEeq58cC05yunBQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_a5eJYDeGEeq58cC05yunBQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a5sL0jeGEeq58cC05yunBQ" points="[1000, 240, -643984, -643984]$[1000, 200, -643984, -643984]$[540, 200, -643984, -643984]$[540, 161, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a6AU4DeGEeq58cC05yunBQ" id="(0.6926406926406926,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a6AU4TeGEeq58cC05yunBQ" id="(0.52,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_bf-vwDeGEeq58cC05yunBQ" type="Generalization_Edge" source="_5YDBIDeFEeq58cC05yunBQ" target="_ldJOYDeEEeq58cC05yunBQ" routing="Rectilinear">
+      <children xmi:type="notation:DecorationNode" xmi:id="_bf-vwzeGEeq58cC05yunBQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_vkZgUDeGEeq58cC05yunBQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_bf-vxDeGEeq58cC05yunBQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_bf-vwTeGEeq58cC05yunBQ"/>
+      <element xmi:type="uml:Generalization" href="pdp4engReqGDPR.profile.uml#_bfu4IDeGEeq58cC05yunBQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bf-vwjeGEeq58cC05yunBQ" points="[1120, 240, -643984, -643984]$[1120, 200, -643984, -643984]$[540, 200, -643984, -643984]$[540, 161, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bgRqsDeGEeq58cC05yunBQ" id="(0.31746031746031744,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bgRqsTeGEeq58cC05yunBQ" id="(0.52,1.0)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.profile.uml b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.profile.uml
new file mode 100644
index 0000000..56e2e6b
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/model/pdp4engReqGDPR.profile.uml
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+  <uml:Profile xmi:id="pdp4engreqprofile" name="pdp4engReqGDPR" metaclassReference="_OUFAgKIoEemN_tazoyo3PQ _Ny30EKIsEemN_tazoyo3PQ _iPFl8MQgEemOUp1qx0PUxQ _nWxvUM4iEemA--Akpl3qeg _hTz2MOtAEemVOdTBOQoUcg">
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_OUFAgKIoEemN_tazoyo3PQ" alias="Element">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_Ny30EKIsEemN_tazoyo3PQ" alias="NamedElement">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_iPFl8MQgEemOUp1qx0PUxQ" alias="Package">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_nWxvUM4iEemA--Akpl3qeg" alias="Activity">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_hTz2MOtAEemVOdTBOQoUcg" alias="DataStoreNode">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataStoreNode"/>
+    </elementImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_JQmfkKIoEemN_tazoyo3PQ">
+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+    </packageImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_JQntsKIoEemN_tazoyo3PQ">
+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+    </packageImport>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_QiJakKIoEemN_tazoyo3PQ" name="ProcessRequirement">
+      <generalization xmi:type="uml:Generalization" xmi:id="_pWYoELhUEemnErsCyDLyRA">
+        <general xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_QiJakKIoEemN_tazoyo3PQ"/>
+      </generalization>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_9DSDYOs_EemVOdTBOQoUcg" name="requester" type="_UjvkYOs9EemVOdTBOQoUcg" association="_9DLVsOs_EemVOdTBOQoUcg">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nQxj4OtAEemVOdTBOQoUcg"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nR_r4OtAEemVOdTBOQoUcg" value="*"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_bQqywKIoEemN_tazoyo3PQ" name="PersonalDataRequirement">
+      <generalization xmi:type="uml:Generalization" xmi:id="_vl43QLhUEemnErsCyDLyRA">
+        <general xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_bQqywKIoEemN_tazoyo3PQ"/>
+      </generalization>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_7lMfUOtAEemVOdTBOQoUcg" name="source" visibility="public">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_-3IaAKe8EemiOZ_hb7cBOg" name="GDPRPrinciple">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_CIjugKe9EemiOZ_hb7cBOg" name="base_NamedElement" association="_CIjHcKe9EemiOZ_hb7cBOg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CIjugae9EemiOZ_hb7cBOg"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_CIjHcKe9EemiOZ_hb7cBOg" name="E_GDPRPrinciple_NamedElement19" memberEnd="_CIjHcae9EemiOZ_hb7cBOg _CIjugKe9EemiOZ_hb7cBOg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_CIjHcae9EemiOZ_hb7cBOg" name="extension_GDPRPrinciple" type="_-3IaAKe8EemiOZ_hb7cBOg" aggregation="composite" association="_CIjHcKe9EemiOZ_hb7cBOg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_EMnQ8Ke9EemiOZ_hb7cBOg" name="ProcessPrinciple">
+      <generalization xmi:type="uml:Generalization" xmi:id="_GKNmEKe9EemiOZ_hb7cBOg" general="_-3IaAKe8EemiOZ_hb7cBOg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_E2JgkMQhEemOUp1qx0PUxQ" name="process" type="_QiJakKIoEemN_tazoyo3PQ"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_Wq-0IMQhEemOUp1qx0PUxQ" name="dataSubject">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_u3iJwKe8EemiOZ_hb7cBOg"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_caAzgMQhEemOUp1qx0PUxQ" name="personalData" type="_bQqywKIoEemN_tazoyo3PQ">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iT-3kMQhEemOUp1qx0PUxQ" value="1"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iUdYsMQhEemOUp1qx0PUxQ" value="*"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_IJyRIKe9EemiOZ_hb7cBOg" name="PurposePersonalDataPrinciple">
+      <generalization xmi:type="uml:Generalization" xmi:id="_-aC_8Ke9EemiOZ_hb7cBOg" general="_-3IaAKe8EemiOZ_hb7cBOg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_JzmTkM5JEemMr69mPZbrMQ" name="purpose">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_sfn3MKe8EemiOZ_hb7cBOg"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_P_FlcM5JEemMr69mPZbrMQ" name="personalData" visibility="public">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_bQqywKIoEemN_tazoyo3PQ"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_Ntr-kKe9EemiOZ_hb7cBOg" name="DataMinimisation">
+      <generalization xmi:type="uml:Generalization" xmi:id="_-8b7UKe9EemiOZ_hb7cBOg" general="_IJyRIKe9EemiOZ_hb7cBOg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_Qykr4Ke9EemiOZ_hb7cBOg" name="PurposeLimitation">
+      <generalization xmi:type="uml:Generalization" xmi:id="__agXYKe9EemiOZ_hb7cBOg" general="_IJyRIKe9EemiOZ_hb7cBOg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_TSUEwKe9EemiOZ_hb7cBOg" name="Accuracy">
+      <generalization xmi:type="uml:Generalization" xmi:id="__5XdoKe9EemiOZ_hb7cBOg" general="_IJyRIKe9EemiOZ_hb7cBOg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_VkrwAKe9EemiOZ_hb7cBOg" name="StorageLimitation">
+      <generalization xmi:type="uml:Generalization" xmi:id="_AaOvAKe-EemiOZ_hb7cBOg" general="_IJyRIKe9EemiOZ_hb7cBOg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_b2rSgKe9EemiOZ_hb7cBOg" name="Lawful">
+      <generalization xmi:type="uml:Generalization" xmi:id="_kpiPQKe9EemiOZ_hb7cBOg" general="_EMnQ8Ke9EemiOZ_hb7cBOg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_dVmHkKe9EemiOZ_hb7cBOg" name="Fairly">
+      <generalization xmi:type="uml:Generalization" xmi:id="_l_gjsKe9EemiOZ_hb7cBOg" general="_EMnQ8Ke9EemiOZ_hb7cBOg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_ej_0YKe9EemiOZ_hb7cBOg" name="Transparency">
+      <generalization xmi:type="uml:Generalization" xmi:id="_m4HmsKe9EemiOZ_hb7cBOg" general="_EMnQ8Ke9EemiOZ_hb7cBOg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_ioeWcKe9EemiOZ_hb7cBOg" name="SecuritySafety">
+      <generalization xmi:type="uml:Generalization" xmi:id="_nrSJAKe9EemiOZ_hb7cBOg" general="_EMnQ8Ke9EemiOZ_hb7cBOg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_xqHlwLOnEemyjo40BHcr6w" name="RelatedTo">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_3XTLALOnEemyjo40BHcr6w" name="sensitive">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_8gQo4LOnEemyjo40BHcr6w" name="linkability" type="_aQdiQLOoEemyjo40BHcr6w"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="__rZIILOnEemyjo40BHcr6w" name="collection" visibility="public" type="_mBgucLOoEemyjo40BHcr6w"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_XA6noLOpEemyjo40BHcr6w" name="base_Element" association="_XA5ZgLOpEemyjo40BHcr6w">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XA6nobOpEemyjo40BHcr6w"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_aQdiQLOoEemyjo40BHcr6w" name="Linkability">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_bnMrsLOoEemyjo40BHcr6w" name="Single"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_demSMLOoEemyjo40BHcr6w" name="notKnown"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_gt1OULOoEemyjo40BHcr6w" name="subgroup"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_iMCRsLOoEemyjo40BHcr6w" name="anonymous"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_mBgucLOoEemyjo40BHcr6w" name="CollectionMethod">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_nOEoMLOoEemyjo40BHcr6w" name="direct"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_obRbILOoEemyjo40BHcr6w" name="indirect"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_p2OWMLOoEemyjo40BHcr6w" name="reused"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_reKkYLOoEemyjo40BHcr6w" name="external"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_ASV98LOpEemyjo40BHcr6w" name="AvailableAt">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_GknNQLOpEemyjo40BHcr6w" name="duration" type="_MHY5ULOpEemyjo40BHcr6w"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_WVE1ULOpEemyjo40BHcr6w" name="base_Element" association="_WU-usLOpEemyjo40BHcr6w">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WVFcYLOpEemyjo40BHcr6w"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_MHY5ULOpEemyjo40BHcr6w" name="Duration">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_OQQDQLOpEemyjo40BHcr6w" name="forAction"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QE4CkLOpEemyjo40BHcr6w" name="untilDeleted"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Rf0WkLOpEemyjo40BHcr6w" name="unlimited"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_WU-usLOpEemyjo40BHcr6w" name="E_AvailableAt_Element35" memberEnd="_WVEOQLOpEemyjo40BHcr6w _WVE1ULOpEemyjo40BHcr6w">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_WVEOQLOpEemyjo40BHcr6w" name="extension_AvailableAt" type="_ASV98LOpEemyjo40BHcr6w" aggregation="composite" association="_WU-usLOpEemyjo40BHcr6w"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_XA5ZgLOpEemyjo40BHcr6w" name="E_RelatedTo_Element36" memberEnd="_XA6AkLOpEemyjo40BHcr6w _XA6noLOpEemyjo40BHcr6w">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_XA6AkLOpEemyjo40BHcr6w" name="extension_RelatedTo" type="_xqHlwLOnEemyjo40BHcr6w" aggregation="composite" association="_XA5ZgLOpEemyjo40BHcr6w"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_lCKU0LOpEemyjo40BHcr6w" name="DerivedFrom">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_nElfkLOpEemyjo40BHcr6w" name="base_Element" association="_nEicQLOpEemyjo40BHcr6w">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nElfkbOpEemyjo40BHcr6w"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_nEicQLOpEemyjo40BHcr6w" name="E_DerivedFrom_Element38" memberEnd="_nEjDULOpEemyjo40BHcr6w _nElfkLOpEemyjo40BHcr6w">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_nEjDULOpEemyjo40BHcr6w" name="extension_DerivedFrom" type="_lCKU0LOpEemyjo40BHcr6w" aggregation="composite" association="_nEicQLOpEemyjo40BHcr6w"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_3QS-MLhUEemnErsCyDLyRA" name="DataRequirement">
+      <generalization xmi:type="uml:Generalization" xmi:id="_8EbbkLhUEemnErsCyDLyRA">
+        <general xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_zuyzoKe8EemiOZ_hb7cBOg"/>
+      </generalization>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_TZfzEMQSEemLrKmPnGqBjA" name="Linkable">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_Wz1L8MQSEemLrKmPnGqBjA" name="duration" type="_MHY5ULOpEemyjo40BHcr6w"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_cRwNMMQSEemLrKmPnGqBjA" name="linkability" type="_aQdiQLOoEemyjo40BHcr6w"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_2-BgUM16EemIGZzcx_n5Ew" name="base_Element" association="_298n0M16EemIGZzcx_n5Ew">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2-BgUc16EemIGZzcx_n5Ew"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_eEo-wMQgEemOUp1qx0PUxQ" name="GeneratedRequirements">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_jM1AkMQgEemOUp1qx0PUxQ" name="base_Package" association="_jMaJ0MQgEemOUp1qx0PUxQ">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jM1AkcQgEemOUp1qx0PUxQ"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_jMaJ0MQgEemOUp1qx0PUxQ" name="E_GeneratedRequirements_Package34" memberEnd="_jMzycMQgEemOUp1qx0PUxQ _jM1AkMQgEemOUp1qx0PUxQ">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_jMzycMQgEemOUp1qx0PUxQ" name="extension_GeneratedRequirements" type="_eEo-wMQgEemOUp1qx0PUxQ" aggregation="composite" association="_jMaJ0MQgEemOUp1qx0PUxQ"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_298n0M16EemIGZzcx_n5Ew" name="E_Linkable_Element35" memberEnd="_2-ASMM16EemIGZzcx_n5Ew _2-BgUM16EemIGZzcx_n5Ew">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_2-ASMM16EemIGZzcx_n5Ew" name="extension_Linkable" type="_TZfzEMQSEemLrKmPnGqBjA" aggregation="composite" association="_298n0M16EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_Dz_GIM17EemIGZzcx_n5Ew" name="DataFlowRequirement">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_psV4gM4iEemA--Akpl3qeg" name="base_Activity" association="_psS1MM4iEemA--Akpl3qeg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Activity"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_psV4gc4iEemA--Akpl3qeg"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_GjCGUM17EemIGZzcx_n5Ew" name="DataSubjects">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_Ve6PwM17EemIGZzcx_n5Ew" name="base_Package" association="_Ve5BoM17EemIGZzcx_n5Ew">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ve6Pwc17EemIGZzcx_n5Ew"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_JVUnwM17EemIGZzcx_n5Ew" name="DataRequirements">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_WQF1EM17EemIGZzcx_n5Ew" name="base_Package" association="_WQEm8M17EemIGZzcx_n5Ew">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WQF1Ec17EemIGZzcx_n5Ew"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_OhWAsM17EemIGZzcx_n5Ew" name="AvailableInformation">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_Z7ZpMc17EemIGZzcx_n5Ew" name="base_Package" association="_Z7ZCIM17EemIGZzcx_n5Ew">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Z7ZpMs17EemIGZzcx_n5Ew"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_lLy_YM17EemIGZzcx_n5Ew" name="concerns" visibility="public">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_R9y5cM17EemIGZzcx_n5Ew" name="PersonalInformation">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_bMtgEM17EemIGZzcx_n5Ew" name="base_Package" association="_bMs5AM17EemIGZzcx_n5Ew">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bMtgEc17EemIGZzcx_n5Ew"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eY1d0M17EemIGZzcx_n5Ew" name="concerns" visibility="public">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_u3iJwKe8EemiOZ_hb7cBOg"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_Ve5BoM17EemIGZzcx_n5Ew" name="E_DataSubjects_Package42" memberEnd="_Ve5osM17EemIGZzcx_n5Ew _Ve6PwM17EemIGZzcx_n5Ew">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Ve5osM17EemIGZzcx_n5Ew" name="extension_DataSubjects" type="_GjCGUM17EemIGZzcx_n5Ew" aggregation="composite" association="_Ve5BoM17EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_WQEm8M17EemIGZzcx_n5Ew" name="E_DataRequirements_Package1" memberEnd="_WQFOAM17EemIGZzcx_n5Ew _WQF1EM17EemIGZzcx_n5Ew">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_WQFOAM17EemIGZzcx_n5Ew" name="extension_DataRequirements" type="_JVUnwM17EemIGZzcx_n5Ew" aggregation="composite" association="_WQEm8M17EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_Z7ZCIM17EemIGZzcx_n5Ew" name="E_AvailableInformation_Package44" memberEnd="_Z7ZpMM17EemIGZzcx_n5Ew _Z7ZpMc17EemIGZzcx_n5Ew">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Z7ZpMM17EemIGZzcx_n5Ew" name="extension_AvailableInformation" type="_OhWAsM17EemIGZzcx_n5Ew" aggregation="composite" association="_Z7ZCIM17EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_bMs5AM17EemIGZzcx_n5Ew" name="E_PersonalInformation_Package45" memberEnd="_bMs5Ac17EemIGZzcx_n5Ew _bMtgEM17EemIGZzcx_n5Ew">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_bMs5Ac17EemIGZzcx_n5Ew" name="extension_PersonalInformation" type="_R9y5cM17EemIGZzcx_n5Ew" aggregation="composite" association="_bMs5AM17EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_1geu0M17EemIGZzcx_n5Ew" name="AvailableInformationContainer">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_81M5oM17EemIGZzcx_n5Ew" name="base_Package" association="_81MSkM17EemIGZzcx_n5Ew">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_81M5oc17EemIGZzcx_n5Ew"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_359HoM17EemIGZzcx_n5Ew" name="PersonalInformationContainer">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_7sryYM17EemIGZzcx_n5Ew" name="base_Package" association="_7srLUM17EemIGZzcx_n5Ew">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7sryYc17EemIGZzcx_n5Ew"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_7srLUM17EemIGZzcx_n5Ew" name="E_PersonalInformationContainer_Package1" memberEnd="_7srLUc17EemIGZzcx_n5Ew _7sryYM17EemIGZzcx_n5Ew">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_7srLUc17EemIGZzcx_n5Ew" name="extension_PersonalInformationContainer" type="_359HoM17EemIGZzcx_n5Ew" aggregation="composite" association="_7srLUM17EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_81MSkM17EemIGZzcx_n5Ew" name="E_AvailableInformationContainer_Package49" memberEnd="_81MSkc17EemIGZzcx_n5Ew _81M5oM17EemIGZzcx_n5Ew">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_81MSkc17EemIGZzcx_n5Ew" name="extension_AvailableInformationContainer" type="_1geu0M17EemIGZzcx_n5Ew" aggregation="composite" association="_81MSkM17EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_Jek08M18EemIGZzcx_n5Ew" name="UnlinkabilityRequirement">
+      <generalization xmi:type="uml:Generalization" xmi:id="_PpOj4M19EemIGZzcx_n5Ew" general="_SD9g8M19EemIGZzcx_n5Ew"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ZvDZ0M18EemIGZzcx_n5Ew" name="linkability" visibility="public" type="_aQdiQLOoEemyjo40BHcr6w"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_SD9g8M19EemIGZzcx_n5Ew" name="PrivacyRequirement">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_TqPiQc19EemIGZzcx_n5Ew" name="base_NamedElement" association="_TqO7MM19EemIGZzcx_n5Ew">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TqPiQs19EemIGZzcx_n5Ew"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_7PNWgM4bEemIGZzcx_n5Ew" name="dataSubject" visibility="public">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_u3iJwKe8EemiOZ_hb7cBOg"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_Ob3_sM4cEemIGZzcx_n5Ew" name="counterstakeholders">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T_GXsM4cEemIGZzcx_n5Ew"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T_O6kM4cEemIGZzcx_n5Ew" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_EhSJYM4dEemIGZzcx_n5Ew" name="personalData">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_bQqywKIoEemN_tazoyo3PQ"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JmvAQM4dEemIGZzcx_n5Ew"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Jmz4wM4dEemIGZzcx_n5Ew" value="*"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_TqO7MM19EemIGZzcx_n5Ew" name="E_PrivacyRequirement_NamedElement54" memberEnd="_TqPiQM19EemIGZzcx_n5Ew _TqPiQc19EemIGZzcx_n5Ew">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_TqPiQM19EemIGZzcx_n5Ew" name="extension_PrivacyRequirement" type="_SD9g8M19EemIGZzcx_n5Ew" aggregation="composite" association="_TqO7MM19EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_p8QykM4cEemIGZzcx_n5Ew" name="DataUnlinkabilityRequirement">
+      <generalization xmi:type="uml:Generalization" xmi:id="_yUr2EM4cEemIGZzcx_n5Ew" general="_Jek08M18EemIGZzcx_n5Ew"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_tV7dEM4cEemIGZzcx_n5Ew" name="links">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wekpAM4cEemIGZzcx_n5Ew"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_weoTYM4cEemIGZzcx_n5Ew" value="*"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_psS1MM4iEemA--Akpl3qeg" name="E_DataFlowRequirement_Activity56" memberEnd="_psVRcM4iEemA--Akpl3qeg _psV4gM4iEemA--Akpl3qeg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_psVRcM4iEemA--Akpl3qeg" name="extension_DataFlowRequirement" type="_Dz_GIM17EemIGZzcx_n5Ew" aggregation="composite" association="_psS1MM4iEemA--Akpl3qeg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_qZAxQM4iEemA--Akpl3qeg" name="Controlers">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_s08oMc4iEemA--Akpl3qeg" name="base_Package" association="_s08BIM4iEemA--Akpl3qeg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s08oMs4iEemA--Akpl3qeg"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_s08BIM4iEemA--Akpl3qeg" name="E_Controlers_Package58" memberEnd="_s08oMM4iEemA--Akpl3qeg _s08oMc4iEemA--Akpl3qeg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_s08oMM4iEemA--Akpl3qeg" name="extension_Controlers" type="_qZAxQM4iEemA--Akpl3qeg" aggregation="composite" association="_s08BIM4iEemA--Akpl3qeg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_qVbxENoQEem5SNFcfg-vgA" name="Link">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_sKUPENoQEem5SNFcfg-vgA" name="base_NamedElement" association="_sJ-Q0NoQEem5SNFcfg-vgA">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sKUPEdoQEem5SNFcfg-vgA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_8NjCINoQEem5SNFcfg-vgA" name="linkability" visibility="public" type="_aQdiQLOoEemyjo40BHcr6w"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_sJ-Q0NoQEem5SNFcfg-vgA" name="E_Link_NamedElement60" memberEnd="_sKToANoQEem5SNFcfg-vgA _sKUPENoQEem5SNFcfg-vgA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_sKToANoQEem5SNFcfg-vgA" name="extension_Link" type="_qVbxENoQEem5SNFcfg-vgA" aggregation="composite" association="_sJ-Q0NoQEem5SNFcfg-vgA"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_KjcJoNoREem5SNFcfg-vgA" name="UndectabilityRequirement">
+      <generalization xmi:type="uml:Generalization" xmi:id="_PaTx8NoREem5SNFcfg-vgA" general="_SD9g8M19EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_UvCa8NoREem5SNFcfg-vgA" name="PseudonimityRequirement">
+      <generalization xmi:type="uml:Generalization" xmi:id="_l0guINoREem5SNFcfg-vgA" general="_SD9g8M19EemIGZzcx_n5Ew"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_XPx5YNoREem5SNFcfg-vgA" name="kind" visibility="public" type="_Y0Gy4NoREem5SNFcfg-vgA"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_Y0Gy4NoREem5SNFcfg-vgA" name="PseudonymKind">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_byMUoNoREem5SNFcfg-vgA" name="Person"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_c-1t8NoREem5SNFcfg-vgA" name="role"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_eQtlgNoREem5SNFcfg-vgA" name="relationShip"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_f5rucNoREem5SNFcfg-vgA" name="roleRelationShip"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jko9QNoREem5SNFcfg-vgA" name="transaction"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_zWRqANoREem5SNFcfg-vgA" name="AnanomityRequirement">
+      <generalization xmi:type="uml:Generalization" xmi:id="_2f2DANoREem5SNFcfg-vgA" general="_Jek08M18EemIGZzcx_n5Ew"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_UjvkYOs9EemVOdTBOQoUcg" name="Stakeholder">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_XAWwwOs9EemVOdTBOQoUcg" name="base_NamedElement" association="_W_9vMOs9EemVOdTBOQoUcg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XAWwwes9EemVOdTBOQoUcg"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_W_9vMOs9EemVOdTBOQoUcg" name="E_Stakeholder_NamedElement64" memberEnd="_XAWJsOs9EemVOdTBOQoUcg _XAWwwOs9EemVOdTBOQoUcg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_XAWJsOs9EemVOdTBOQoUcg" name="extension_Stakeholder" type="_UjvkYOs9EemVOdTBOQoUcg" aggregation="composite" association="_W_9vMOs9EemVOdTBOQoUcg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_9DLVsOs_EemVOdTBOQoUcg" memberEnd="_9DSDYOs_EemVOdTBOQoUcg _9DTRgOs_EemVOdTBOQoUcg">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9DQOMOs_EemVOdTBOQoUcg" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9DQ1QOs_EemVOdTBOQoUcg" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_9DTRgOs_EemVOdTBOQoUcg" name="processrequirement" type="_QiJakKIoEemN_tazoyo3PQ" association="_9DLVsOs_EemVOdTBOQoUcg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_dFI2UOtAEemVOdTBOQoUcg" name="DataRecordRequirement">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_iMnGcOtAEemVOdTBOQoUcg" name="base_DataStoreNode" association="_iMl4UOtAEemVOdTBOQoUcg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataStoreNode"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iMnGcetAEemVOdTBOQoUcg"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ioeGkOtBEemVOdTBOQoUcg" name="dataList">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_zuyzoKe8EemiOZ_hb7cBOg"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nW8n4OtBEemVOdTBOQoUcg"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nXDVkOtBEemVOdTBOQoUcg" value="*"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_iMl4UOtAEemVOdTBOQoUcg" name="E_DataRecordRequirement_DataStoreNode68" memberEnd="_iMmfYOtAEemVOdTBOQoUcg _iMnGcOtAEemVOdTBOQoUcg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_iMmfYOtAEemVOdTBOQoUcg" name="extension_DataRecordRequirement" type="_dFI2UOtAEemVOdTBOQoUcg" aggregation="composite" association="_iMl4UOtAEemVOdTBOQoUcg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_0-GlgO8wEemMQJ9VTbRPgA" name="FunctionalRequirements">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_5cL6YO8wEemMQJ9VTbRPgA" name="base_Package" association="_5cGa0O8wEemMQJ9VTbRPgA">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5cL6Ye8wEemMQJ9VTbRPgA"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_1dP_oO8wEemMQJ9VTbRPgA" name="NonFunctionalRequirements">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_6etHUO8wEemMQJ9VTbRPgA" name="base_Package" association="_6er5MO8wEemMQJ9VTbRPgA">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6etHUe8wEemMQJ9VTbRPgA"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_5cGa0O8wEemMQJ9VTbRPgA" name="E_FunctionalRequirements_Package1" memberEnd="_5cLTUO8wEemMQJ9VTbRPgA _5cL6YO8wEemMQJ9VTbRPgA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_5cLTUO8wEemMQJ9VTbRPgA" name="extension_FunctionalRequirements" type="_0-GlgO8wEemMQJ9VTbRPgA" aggregation="composite" association="_5cGa0O8wEemMQJ9VTbRPgA"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_6er5MO8wEemMQJ9VTbRPgA" name="E_NonFunctionalRequirements_Package73" memberEnd="_6esgQO8wEemMQJ9VTbRPgA _6etHUO8wEemMQJ9VTbRPgA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_6esgQO8wEemMQJ9VTbRPgA" name="extension_NonFunctionalRequirements" type="_1dP_oO8wEemMQJ9VTbRPgA" aggregation="composite" association="_6er5MO8wEemMQJ9VTbRPgA"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_paWq0DeEEeq58cC05yunBQ" name="LawfulByConsent">
+      <generalization xmi:type="uml:Generalization" xmi:id="_6Vf9UDeEEeq58cC05yunBQ" general="_b2rSgKe9EemiOZ_hb7cBOg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_GUeQwDeFEeq58cC05yunBQ" name="consent" visibility="public">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_3gl34DbjEeqsGNzaceeV5g"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_3N8hEDeFEeq58cC05yunBQ" name="LawfulByContract">
+      <generalization xmi:type="uml:Generalization" xmi:id="_ZdJ8YDeGEeq58cC05yunBQ" general="_b2rSgKe9EemiOZ_hb7cBOg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="__qw8YDeFEeq58cC05yunBQ" name="contract">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_UjKPMDbkEeqsGNzaceeV5g"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_3rFJADeFEeq58cC05yunBQ" name="LawfulByPublicInterest">
+      <generalization xmi:type="uml:Generalization" xmi:id="_Z2BvYDeGEeq58cC05yunBQ" general="_b2rSgKe9EemiOZ_hb7cBOg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_fqXFgDeGEeq58cC05yunBQ" name="publicInterest">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_7ZRHsDblEeqsGNzaceeV5g"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_4IlkYDeFEeq58cC05yunBQ" name="LawfulByLegitimateInterest">
+      <generalization xmi:type="uml:Generalization" xmi:id="_aV4UIDeGEeq58cC05yunBQ" general="_b2rSgKe9EemiOZ_hb7cBOg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_laJ54DeGEeq58cC05yunBQ" name="legitimateInterest">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_8K1ukDblEeqsGNzaceeV5g"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_4kYvkDeFEeq58cC05yunBQ" name="LawfulByLegalObligation">
+      <generalization xmi:type="uml:Generalization" xmi:id="_a5eJYDeGEeq58cC05yunBQ" general="_b2rSgKe9EemiOZ_hb7cBOg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_qjqxYDeGEeq58cC05yunBQ" name="legalObligation">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_8Z5eQDblEeqsGNzaceeV5g"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_5YBzADeFEeq58cC05yunBQ" name="LawfulByVitalInterest">
+      <generalization xmi:type="uml:Generalization" xmi:id="_bfu4IDeGEeq58cC05yunBQ" general="_b2rSgKe9EemiOZ_hb7cBOg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_yJmoADeGEeq58cC05yunBQ" name="vitalInterest">
+        <type xmi:type="uml:Stereotype" href="pathmap://PDP4ENG-COMMON/pdp4engCommonGDPR.profile.uml#_8pTMMDblEeqsGNzaceeV5g"/>
+      </ownedAttribute>
+    </packagedElement>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GvRV0KIpEemN_tazoyo3PQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvVnQKIpEemN_tazoyo3PQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_FGSbEOtBEemVOdTBOQoUcg">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGUQQOtBEemVOdTBOQoUcg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+    </profileApplication>
+  </uml:Profile>
+  <Ecore:EPackage xmi:id="_IQROgKIpEemN_tazoyo3PQ" base_Package="pdp4engreqprofile" nsURI="http://org.eclipse.papyrus.pdp4eng.req.profile" basePackage="org.eclipse.papyrus.pdp4eng.req.profile"/>
+</xmi:XMI>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/plugin.properties b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/plugin.properties
new file mode 100644
index 0000000..730d1e0
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/plugin.properties
@@ -0,0 +1,16 @@
+#################################################################################
+# Copyright (c) 2020 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Patrick Tessier - initial API and implementation
+#	  Gabriel Pedroza - initial API and implementation
+##################################################################################
+
+pluginName = pdp4eng Req
+providerName = Eclipse Modeling Project
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/plugin.xml b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/plugin.xml
new file mode 100644
index 0000000..531320c
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/plugin.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated pdp4engReqGDPR -->
+      <package
+            uri="http://org.eclipse.papyrus.pdp4eng.req.profile"
+            class="org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage"
+            genModel="model/pdp4engReqGDPR.genmodel"/>
+   </extension>
+    <extension
+         point="org.eclipse.emf.ecore.uri_mapping">
+      <mapping
+            source="pathmap://PDP4ENG-REQ/"
+            target="platform:/plugin/org.eclipse.papyrus.pdp4eng.req.profile/model/">
+      </mapping>
+   </extension>
+   <extension
+         point="org.eclipse.uml2.uml.generated_package">
+      <profile
+            location="pathmap://PDP4ENG-REQ/pdp4engReqGDPR.profile.uml#pdp4engreqprofile"
+            uri="http://org.eclipse.papyrus.pdp4eng.req.profile">
+      </profile>
+    </extension>
+
+</plugin>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/pom.xml b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/pom.xml
new file mode 100644
index 0000000..cb4fbb8
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
+	<parent>
+		<groupId>org.eclipse.papyrus.pdp4eng</groupId>
+		<artifactId>org.eclipse.papyrus.pdp4eng.plugins.req.artifact</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.papyrus.pdp4eng.req.profile</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+	
+</project>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Accuracy.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Accuracy.java
new file mode 100644
index 0000000..fe5548b
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Accuracy.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Accuracy</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAccuracy()
+ * @model
+ * @generated
+ */
+public interface Accuracy extends PurposePersonalDataPrinciple {
+} // Accuracy
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AnanomityRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AnanomityRequirement.java
new file mode 100644
index 0000000..eb7bd6c
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AnanomityRequirement.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ananomity Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAnanomityRequirement()
+ * @model
+ * @generated
+ */
+public interface AnanomityRequirement extends UnlinkabilityRequirement {
+} // AnanomityRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AvailableAt.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AvailableAt.java
new file mode 100644
index 0000000..38399fc
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AvailableAt.java
@@ -0,0 +1,96 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Available At</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt#getDuration <em>Duration</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt#getBase_Element <em>Base Element</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAvailableAt()
+ * @model
+ * @generated
+ */
+public interface AvailableAt extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Duration</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Duration</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Duration</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration
+	 * @see #setDuration(Duration)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAvailableAt_Duration()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Duration getDuration();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt#getDuration <em>Duration</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Duration</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration
+	 * @see #getDuration()
+	 * @generated
+	 */
+	void setDuration(Duration value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Element</em>' reference.
+	 * @see #setBase_Element(Element)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAvailableAt_Base_Element()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	Element getBase_Element();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt#getBase_Element <em>Base Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Element</em>' reference.
+	 * @see #getBase_Element()
+	 * @generated
+	 */
+	void setBase_Element(Element value);
+
+} // AvailableAt
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AvailableInformation.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AvailableInformation.java
new file mode 100644
index 0000000..e461aff
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AvailableInformation.java
@@ -0,0 +1,93 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Available Information</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation#getBase_Package <em>Base Package</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation#getConcerns <em>Concerns</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAvailableInformation()
+ * @model
+ * @generated
+ */
+public interface AvailableInformation extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAvailableInformation_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+	/**
+	 * Returns the value of the '<em><b>Concerns</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Concerns</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Concerns</em>' reference.
+	 * @see #setConcerns(NamedElement)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAvailableInformation_Concerns()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	NamedElement getConcerns();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation#getConcerns <em>Concerns</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Concerns</em>' reference.
+	 * @see #getConcerns()
+	 * @generated
+	 */
+	void setConcerns(NamedElement value);
+
+} // AvailableInformation
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AvailableInformationContainer.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AvailableInformationContainer.java
new file mode 100644
index 0000000..526ead1
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/AvailableInformationContainer.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Available Information Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAvailableInformationContainer()
+ * @model
+ * @generated
+ */
+public interface AvailableInformationContainer extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getAvailableInformationContainer_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // AvailableInformationContainer
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/CollectionMethod.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/CollectionMethod.java
new file mode 100644
index 0000000..544bbf2
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/CollectionMethod.java
@@ -0,0 +1,269 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Collection Method</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getCollectionMethod()
+ * @model
+ * @generated
+ */
+public enum CollectionMethod implements Enumerator {
+	/**
+	 * The '<em><b>Direct</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DIRECT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DIRECT(0, "direct", "direct"),
+
+	/**
+	 * The '<em><b>Indirect</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INDIRECT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	INDIRECT(1, "indirect", "indirect"),
+
+	/**
+	 * The '<em><b>Reused</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #REUSED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	REUSED(2, "reused", "reused"),
+
+	/**
+	 * The '<em><b>External</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EXTERNAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	EXTERNAL(3, "external", "external");
+
+	/**
+	 * The '<em><b>Direct</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DIRECT
+	 * @model name="direct"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DIRECT_VALUE = 0;
+
+	/**
+	 * The '<em><b>Indirect</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INDIRECT
+	 * @model name="indirect"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INDIRECT_VALUE = 1;
+
+	/**
+	 * The '<em><b>Reused</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #REUSED
+	 * @model name="reused"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int REUSED_VALUE = 2;
+
+	/**
+	 * The '<em><b>External</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EXTERNAL
+	 * @model name="external"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EXTERNAL_VALUE = 3;
+
+	/**
+	 * An array of all the '<em><b>Collection Method</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final CollectionMethod[] VALUES_ARRAY =
+		new CollectionMethod[] {
+			DIRECT,
+			INDIRECT,
+			REUSED,
+			EXTERNAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Collection Method</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<CollectionMethod> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Collection Method</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static CollectionMethod get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CollectionMethod result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Collection Method</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static CollectionMethod getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CollectionMethod result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Collection Method</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static CollectionMethod get(int value) {
+		switch (value) {
+			case DIRECT_VALUE: return DIRECT;
+			case INDIRECT_VALUE: return INDIRECT;
+			case REUSED_VALUE: return REUSED;
+			case EXTERNAL_VALUE: return EXTERNAL;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private CollectionMethod(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //CollectionMethod
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Controlers.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Controlers.java
new file mode 100644
index 0000000..a38fc4b
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Controlers.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Controlers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getControlers()
+ * @model
+ * @generated
+ */
+public interface Controlers extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getControlers_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // Controlers
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataFlowRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataFlowRequirement.java
new file mode 100644
index 0000000..0467cde
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataFlowRequirement.java
@@ -0,0 +1,66 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Activity;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Flow Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement#getBase_Activity <em>Base Activity</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataFlowRequirement()
+ * @model
+ * @generated
+ */
+public interface DataFlowRequirement extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Activity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Activity</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Activity</em>' reference.
+	 * @see #setBase_Activity(Activity)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataFlowRequirement_Base_Activity()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	Activity getBase_Activity();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement#getBase_Activity <em>Base Activity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Activity</em>' reference.
+	 * @see #getBase_Activity()
+	 * @generated
+	 */
+	void setBase_Activity(Activity value);
+
+} // DataFlowRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataMinimisation.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataMinimisation.java
new file mode 100644
index 0000000..5b12c8c
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataMinimisation.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Minimisation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataMinimisation()
+ * @model
+ * @generated
+ */
+public interface DataMinimisation extends PurposePersonalDataPrinciple {
+} // DataMinimisation
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataRecordRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataRecordRequirement.java
new file mode 100644
index 0000000..2e28329
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataRecordRequirement.java
@@ -0,0 +1,87 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Data;
+
+import org.eclipse.uml2.uml.DataStoreNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Record Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement#getBase_DataStoreNode <em>Base Data Store Node</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement#getDataList <em>Data List</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataRecordRequirement()
+ * @model
+ * @generated
+ */
+public interface DataRecordRequirement extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Data Store Node</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Data Store Node</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Data Store Node</em>' reference.
+	 * @see #setBase_DataStoreNode(DataStoreNode)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataRecordRequirement_Base_DataStoreNode()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	DataStoreNode getBase_DataStoreNode();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement#getBase_DataStoreNode <em>Base Data Store Node</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Data Store Node</em>' reference.
+	 * @see #getBase_DataStoreNode()
+	 * @generated
+	 */
+	void setBase_DataStoreNode(DataStoreNode value);
+
+	/**
+	 * Returns the value of the '<em><b>Data List</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Data}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data List</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data List</em>' reference list.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataRecordRequirement_DataList()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<Data> getDataList();
+
+} // DataRecordRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataRequirement.java
new file mode 100644
index 0000000..712f357
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataRequirement.java
@@ -0,0 +1,32 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Data;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataRequirement()
+ * @model
+ * @generated
+ */
+public interface DataRequirement extends Data {
+} // DataRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataRequirements.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataRequirements.java
new file mode 100644
index 0000000..d1d1b94
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataRequirements.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Requirements</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataRequirements()
+ * @model
+ * @generated
+ */
+public interface DataRequirements extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataRequirements_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // DataRequirements
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataSubjects.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataSubjects.java
new file mode 100644
index 0000000..0ddef13
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataSubjects.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Subjects</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataSubjects()
+ * @model
+ * @generated
+ */
+public interface DataSubjects extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataSubjects_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // DataSubjects
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataUnlinkabilityRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataUnlinkabilityRequirement.java
new file mode 100644
index 0000000..c30f067
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DataUnlinkabilityRequirement.java
@@ -0,0 +1,82 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Unlinkability Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataUnlinkabilityRequirement#getLinks <em>Links</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataUnlinkabilityRequirement()
+ * @model
+ * @generated
+ */
+public interface DataUnlinkabilityRequirement extends UnlinkabilityRequirement {
+	/**
+	 * Returns the value of the '<em><b>Links</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Links</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Links</em>' reference list.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDataUnlinkabilityRequirement_Links()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<NamedElement> getLinks();
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Links</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getLinks()
+	 * @generated
+	 */
+	NamedElement getLinks(String name);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Links</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
+	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getLinks()
+	 * @generated
+	 */
+	NamedElement getLinks(String name, boolean ignoreCase, EClass eClass);
+
+} // DataUnlinkabilityRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DerivedFrom.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DerivedFrom.java
new file mode 100644
index 0000000..e13acec
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/DerivedFrom.java
@@ -0,0 +1,66 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Derived From</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom#getBase_Element <em>Base Element</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDerivedFrom()
+ * @model
+ * @generated
+ */
+public interface DerivedFrom extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Element</em>' reference.
+	 * @see #setBase_Element(Element)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDerivedFrom_Base_Element()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	Element getBase_Element();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom#getBase_Element <em>Base Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Element</em>' reference.
+	 * @see #getBase_Element()
+	 * @generated
+	 */
+	void setBase_Element(Element value);
+
+} // DerivedFrom
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Duration.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Duration.java
new file mode 100644
index 0000000..70f3ffc
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Duration.java
@@ -0,0 +1,246 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Duration</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getDuration()
+ * @model
+ * @generated
+ */
+public enum Duration implements Enumerator {
+	/**
+	 * The '<em><b>For Action</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FOR_ACTION_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FOR_ACTION(0, "forAction", "forAction"),
+
+	/**
+	 * The '<em><b>Until Deleted</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNTIL_DELETED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UNTIL_DELETED(1, "untilDeleted", "untilDeleted"),
+
+	/**
+	 * The '<em><b>Unlimited</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNLIMITED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UNLIMITED(2, "unlimited", "unlimited");
+
+	/**
+	 * The '<em><b>For Action</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FOR_ACTION
+	 * @model name="forAction"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FOR_ACTION_VALUE = 0;
+
+	/**
+	 * The '<em><b>Until Deleted</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNTIL_DELETED
+	 * @model name="untilDeleted"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UNTIL_DELETED_VALUE = 1;
+
+	/**
+	 * The '<em><b>Unlimited</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNLIMITED
+	 * @model name="unlimited"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UNLIMITED_VALUE = 2;
+
+	/**
+	 * An array of all the '<em><b>Duration</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final Duration[] VALUES_ARRAY =
+		new Duration[] {
+			FOR_ACTION,
+			UNTIL_DELETED,
+			UNLIMITED,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Duration</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<Duration> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Duration</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static Duration get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			Duration result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Duration</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static Duration getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			Duration result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Duration</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static Duration get(int value) {
+		switch (value) {
+			case FOR_ACTION_VALUE: return FOR_ACTION;
+			case UNTIL_DELETED_VALUE: return UNTIL_DELETED;
+			case UNLIMITED_VALUE: return UNLIMITED;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private Duration(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //Duration
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Fairly.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Fairly.java
new file mode 100644
index 0000000..0acfc13
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Fairly.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Fairly</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getFairly()
+ * @model
+ * @generated
+ */
+public interface Fairly extends ProcessPrinciple {
+} // Fairly
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/FunctionalRequirements.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/FunctionalRequirements.java
new file mode 100644
index 0000000..8df1b5b
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/FunctionalRequirements.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Functional Requirements</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getFunctionalRequirements()
+ * @model
+ * @generated
+ */
+public interface FunctionalRequirements extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getFunctionalRequirements_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // FunctionalRequirements
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/GDPRPrinciple.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/GDPRPrinciple.java
new file mode 100644
index 0000000..58ffde9
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/GDPRPrinciple.java
@@ -0,0 +1,66 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>GDPR Principle</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple#getBase_NamedElement <em>Base Named Element</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getGDPRPrinciple()
+ * @model
+ * @generated
+ */
+public interface GDPRPrinciple extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Named Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Named Element</em>' reference.
+	 * @see #setBase_NamedElement(NamedElement)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getGDPRPrinciple_Base_NamedElement()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	NamedElement getBase_NamedElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple#getBase_NamedElement <em>Base Named Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Named Element</em>' reference.
+	 * @see #getBase_NamedElement()
+	 * @generated
+	 */
+	void setBase_NamedElement(NamedElement value);
+
+} // GDPRPrinciple
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/GeneratedRequirements.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/GeneratedRequirements.java
new file mode 100644
index 0000000..7039b53
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/GeneratedRequirements.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generated Requirements</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getGeneratedRequirements()
+ * @model
+ * @generated
+ */
+public interface GeneratedRequirements extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getGeneratedRequirements_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // GeneratedRequirements
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Lawful.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Lawful.java
new file mode 100644
index 0000000..3c8efdf
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Lawful.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lawful</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawful()
+ * @model
+ * @generated
+ */
+public interface Lawful extends ProcessPrinciple {
+} // Lawful
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByConsent.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByConsent.java
new file mode 100644
index 0000000..aa4a169
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByConsent.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Consent;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lawful By Consent</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent#getConsent <em>Consent</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByConsent()
+ * @model
+ * @generated
+ */
+public interface LawfulByConsent extends Lawful {
+	/**
+	 * Returns the value of the '<em><b>Consent</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Consent</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Consent</em>' reference.
+	 * @see #setConsent(Consent)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByConsent_Consent()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Consent getConsent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent#getConsent <em>Consent</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Consent</em>' reference.
+	 * @see #getConsent()
+	 * @generated
+	 */
+	void setConsent(Consent value);
+
+} // LawfulByConsent
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByContract.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByContract.java
new file mode 100644
index 0000000..d04477c
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByContract.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Contract;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lawful By Contract</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract#getContract <em>Contract</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByContract()
+ * @model
+ * @generated
+ */
+public interface LawfulByContract extends Lawful {
+	/**
+	 * Returns the value of the '<em><b>Contract</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Contract</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Contract</em>' reference.
+	 * @see #setContract(Contract)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByContract_Contract()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Contract getContract();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract#getContract <em>Contract</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Contract</em>' reference.
+	 * @see #getContract()
+	 * @generated
+	 */
+	void setContract(Contract value);
+
+} // LawfulByContract
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByLegalObligation.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByLegalObligation.java
new file mode 100644
index 0000000..89b5133
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByLegalObligation.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.LegalObligation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lawful By Legal Obligation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation#getLegalObligation <em>Legal Obligation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByLegalObligation()
+ * @model
+ * @generated
+ */
+public interface LawfulByLegalObligation extends Lawful {
+	/**
+	 * Returns the value of the '<em><b>Legal Obligation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Legal Obligation</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Legal Obligation</em>' reference.
+	 * @see #setLegalObligation(LegalObligation)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByLegalObligation_LegalObligation()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	LegalObligation getLegalObligation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation#getLegalObligation <em>Legal Obligation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Legal Obligation</em>' reference.
+	 * @see #getLegalObligation()
+	 * @generated
+	 */
+	void setLegalObligation(LegalObligation value);
+
+} // LawfulByLegalObligation
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByLegitimateInterest.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByLegitimateInterest.java
new file mode 100644
index 0000000..3b6ff1f
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByLegitimateInterest.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.LegitimateInterest;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lawful By Legitimate Interest</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest#getLegitimateInterest <em>Legitimate Interest</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByLegitimateInterest()
+ * @model
+ * @generated
+ */
+public interface LawfulByLegitimateInterest extends Lawful {
+	/**
+	 * Returns the value of the '<em><b>Legitimate Interest</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Legitimate Interest</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Legitimate Interest</em>' reference.
+	 * @see #setLegitimateInterest(LegitimateInterest)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByLegitimateInterest_LegitimateInterest()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	LegitimateInterest getLegitimateInterest();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest#getLegitimateInterest <em>Legitimate Interest</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Legitimate Interest</em>' reference.
+	 * @see #getLegitimateInterest()
+	 * @generated
+	 */
+	void setLegitimateInterest(LegitimateInterest value);
+
+} // LawfulByLegitimateInterest
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByPublicInterest.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByPublicInterest.java
new file mode 100644
index 0000000..9ec12be
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByPublicInterest.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PublicInterest;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lawful By Public Interest</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest#getPublicInterest <em>Public Interest</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByPublicInterest()
+ * @model
+ * @generated
+ */
+public interface LawfulByPublicInterest extends Lawful {
+	/**
+	 * Returns the value of the '<em><b>Public Interest</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Public Interest</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Public Interest</em>' reference.
+	 * @see #setPublicInterest(PublicInterest)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByPublicInterest_PublicInterest()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	PublicInterest getPublicInterest();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest#getPublicInterest <em>Public Interest</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Public Interest</em>' reference.
+	 * @see #getPublicInterest()
+	 * @generated
+	 */
+	void setPublicInterest(PublicInterest value);
+
+} // LawfulByPublicInterest
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByVitalInterest.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByVitalInterest.java
new file mode 100644
index 0000000..361029b
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/LawfulByVitalInterest.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.VitalInterest;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lawful By Vital Interest</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest#getVitalInterest <em>Vital Interest</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByVitalInterest()
+ * @model
+ * @generated
+ */
+public interface LawfulByVitalInterest extends Lawful {
+	/**
+	 * Returns the value of the '<em><b>Vital Interest</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Vital Interest</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Vital Interest</em>' reference.
+	 * @see #setVitalInterest(VitalInterest)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLawfulByVitalInterest_VitalInterest()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	VitalInterest getVitalInterest();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest#getVitalInterest <em>Vital Interest</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Vital Interest</em>' reference.
+	 * @see #getVitalInterest()
+	 * @generated
+	 */
+	void setVitalInterest(VitalInterest value);
+
+} // LawfulByVitalInterest
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Link.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Link.java
new file mode 100644
index 0000000..56c08a7
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Link.java
@@ -0,0 +1,96 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Link</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link#getBase_NamedElement <em>Base Named Element</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link#getLinkability <em>Linkability</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLink()
+ * @model
+ * @generated
+ */
+public interface Link extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Named Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Named Element</em>' reference.
+	 * @see #setBase_NamedElement(NamedElement)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLink_Base_NamedElement()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	NamedElement getBase_NamedElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link#getBase_NamedElement <em>Base Named Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Named Element</em>' reference.
+	 * @see #getBase_NamedElement()
+	 * @generated
+	 */
+	void setBase_NamedElement(NamedElement value);
+
+	/**
+	 * Returns the value of the '<em><b>Linkability</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Linkability</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Linkability</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @see #setLinkability(Linkability)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLink_Linkability()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Linkability getLinkability();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link#getLinkability <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Linkability</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @see #getLinkability()
+	 * @generated
+	 */
+	void setLinkability(Linkability value);
+
+} // Link
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Linkability.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Linkability.java
new file mode 100644
index 0000000..a9e0d09
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Linkability.java
@@ -0,0 +1,269 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Linkability</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLinkability()
+ * @model
+ * @generated
+ */
+public enum Linkability implements Enumerator {
+	/**
+	 * The '<em><b>Single</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SINGLE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SINGLE(0, "Single", "Single"),
+
+	/**
+	 * The '<em><b>Not Known</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NOT_KNOWN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NOT_KNOWN(1, "notKnown", "notKnown"),
+
+	/**
+	 * The '<em><b>Subgroup</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SUBGROUP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SUBGROUP(2, "subgroup", "subgroup"),
+
+	/**
+	 * The '<em><b>Anonymous</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ANONYMOUS_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ANONYMOUS(3, "anonymous", "anonymous");
+
+	/**
+	 * The '<em><b>Single</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SINGLE
+	 * @model name="Single"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SINGLE_VALUE = 0;
+
+	/**
+	 * The '<em><b>Not Known</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NOT_KNOWN
+	 * @model name="notKnown"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NOT_KNOWN_VALUE = 1;
+
+	/**
+	 * The '<em><b>Subgroup</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SUBGROUP
+	 * @model name="subgroup"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SUBGROUP_VALUE = 2;
+
+	/**
+	 * The '<em><b>Anonymous</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ANONYMOUS
+	 * @model name="anonymous"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ANONYMOUS_VALUE = 3;
+
+	/**
+	 * An array of all the '<em><b>Linkability</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final Linkability[] VALUES_ARRAY =
+		new Linkability[] {
+			SINGLE,
+			NOT_KNOWN,
+			SUBGROUP,
+			ANONYMOUS,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Linkability</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<Linkability> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Linkability</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static Linkability get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			Linkability result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Linkability</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static Linkability getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			Linkability result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Linkability</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static Linkability get(int value) {
+		switch (value) {
+			case SINGLE_VALUE: return SINGLE;
+			case NOT_KNOWN_VALUE: return NOT_KNOWN;
+			case SUBGROUP_VALUE: return SUBGROUP;
+			case ANONYMOUS_VALUE: return ANONYMOUS;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private Linkability(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //Linkability
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Linkable.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Linkable.java
new file mode 100644
index 0000000..a64b9b2
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Linkable.java
@@ -0,0 +1,126 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Linkable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getDuration <em>Duration</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getLinkability <em>Linkability</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getBase_Element <em>Base Element</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLinkable()
+ * @model
+ * @generated
+ */
+public interface Linkable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Duration</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Duration</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Duration</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration
+	 * @see #setDuration(Duration)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLinkable_Duration()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Duration getDuration();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getDuration <em>Duration</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Duration</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration
+	 * @see #getDuration()
+	 * @generated
+	 */
+	void setDuration(Duration value);
+
+	/**
+	 * Returns the value of the '<em><b>Linkability</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Linkability</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Linkability</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @see #setLinkability(Linkability)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLinkable_Linkability()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Linkability getLinkability();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getLinkability <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Linkability</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @see #getLinkability()
+	 * @generated
+	 */
+	void setLinkability(Linkability value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Element</em>' reference.
+	 * @see #setBase_Element(Element)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getLinkable_Base_Element()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	Element getBase_Element();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getBase_Element <em>Base Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Element</em>' reference.
+	 * @see #getBase_Element()
+	 * @generated
+	 */
+	void setBase_Element(Element value);
+
+} // Linkable
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/NonFunctionalRequirements.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/NonFunctionalRequirements.java
new file mode 100644
index 0000000..8dbcc3c
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/NonFunctionalRequirements.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Non Functional Requirements</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getNonFunctionalRequirements()
+ * @model
+ * @generated
+ */
+public interface NonFunctionalRequirements extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getNonFunctionalRequirements_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // NonFunctionalRequirements
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PersonalDataRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PersonalDataRequirement.java
new file mode 100644
index 0000000..75accd7
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PersonalDataRequirement.java
@@ -0,0 +1,66 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Personal Data Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPersonalDataRequirement()
+ * @model
+ * @generated
+ */
+public interface PersonalDataRequirement extends PersonalData {
+	/**
+	 * Returns the value of the '<em><b>Source</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Source</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Source</em>' reference.
+	 * @see #setSource(Element)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPersonalDataRequirement_Source()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Element getSource();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement#getSource <em>Source</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Source</em>' reference.
+	 * @see #getSource()
+	 * @generated
+	 */
+	void setSource(Element value);
+
+} // PersonalDataRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PersonalInformation.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PersonalInformation.java
new file mode 100644
index 0000000..6066a9c
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PersonalInformation.java
@@ -0,0 +1,93 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Personal Information</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation#getBase_Package <em>Base Package</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation#getConcerns <em>Concerns</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPersonalInformation()
+ * @model
+ * @generated
+ */
+public interface PersonalInformation extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPersonalInformation_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+	/**
+	 * Returns the value of the '<em><b>Concerns</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Concerns</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Concerns</em>' reference.
+	 * @see #setConcerns(DataSubject)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPersonalInformation_Concerns()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	DataSubject getConcerns();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation#getConcerns <em>Concerns</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Concerns</em>' reference.
+	 * @see #getConcerns()
+	 * @generated
+	 */
+	void setConcerns(DataSubject value);
+
+} // PersonalInformation
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PersonalInformationContainer.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PersonalInformationContainer.java
new file mode 100644
index 0000000..7b23c04
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PersonalInformationContainer.java
@@ -0,0 +1,64 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Personal Information Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPersonalInformationContainer()
+ * @model
+ * @generated
+ */
+public interface PersonalInformationContainer extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPersonalInformationContainer_Base_Package()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // PersonalInformationContainer
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PrivacyRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PrivacyRequirement.java
new file mode 100644
index 0000000..5144b19
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PrivacyRequirement.java
@@ -0,0 +1,157 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Privacy Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getBase_NamedElement <em>Base Named Element</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getDataSubject <em>Data Subject</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getCounterstakeholders <em>Counterstakeholders</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getPersonalData <em>Personal Data</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPrivacyRequirement()
+ * @model
+ * @generated
+ */
+public interface PrivacyRequirement extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Named Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Named Element</em>' reference.
+	 * @see #setBase_NamedElement(NamedElement)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPrivacyRequirement_Base_NamedElement()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	NamedElement getBase_NamedElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getBase_NamedElement <em>Base Named Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Named Element</em>' reference.
+	 * @see #getBase_NamedElement()
+	 * @generated
+	 */
+	void setBase_NamedElement(NamedElement value);
+
+	/**
+	 * Returns the value of the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data Subject</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data Subject</em>' reference.
+	 * @see #setDataSubject(DataSubject)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPrivacyRequirement_DataSubject()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	DataSubject getDataSubject();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getDataSubject <em>Data Subject</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Data Subject</em>' reference.
+	 * @see #getDataSubject()
+	 * @generated
+	 */
+	void setDataSubject(DataSubject value);
+
+	/**
+	 * Returns the value of the '<em><b>Counterstakeholders</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Counterstakeholders</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Counterstakeholders</em>' reference list.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPrivacyRequirement_Counterstakeholders()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<NamedElement> getCounterstakeholders();
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Counterstakeholders</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getCounterstakeholders()
+	 * @generated
+	 */
+	NamedElement getCounterstakeholders(String name);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Counterstakeholders</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
+	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getCounterstakeholders()
+	 * @generated
+	 */
+	NamedElement getCounterstakeholders(String name, boolean ignoreCase, EClass eClass);
+
+	/**
+	 * Returns the value of the '<em><b>Personal Data</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Personal Data</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Personal Data</em>' reference list.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPrivacyRequirement_PersonalData()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<PersonalData> getPersonalData();
+
+} // PrivacyRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/ProcessPrinciple.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/ProcessPrinciple.java
new file mode 100644
index 0000000..800cc49
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/ProcessPrinciple.java
@@ -0,0 +1,110 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Process Principle</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getProcess <em>Process</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getDataSubject <em>Data Subject</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getPersonalData <em>Personal Data</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getProcessPrinciple()
+ * @model
+ * @generated
+ */
+public interface ProcessPrinciple extends GDPRPrinciple {
+	/**
+	 * Returns the value of the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Process</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Process</em>' reference.
+	 * @see #setProcess(ProcessRequirement)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getProcessPrinciple_Process()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	ProcessRequirement getProcess();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getProcess <em>Process</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Process</em>' reference.
+	 * @see #getProcess()
+	 * @generated
+	 */
+	void setProcess(ProcessRequirement value);
+
+	/**
+	 * Returns the value of the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data Subject</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data Subject</em>' reference.
+	 * @see #setDataSubject(DataSubject)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getProcessPrinciple_DataSubject()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	DataSubject getDataSubject();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getDataSubject <em>Data Subject</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Data Subject</em>' reference.
+	 * @see #getDataSubject()
+	 * @generated
+	 */
+	void setDataSubject(DataSubject value);
+
+	/**
+	 * Returns the value of the '<em><b>Personal Data</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Personal Data</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Personal Data</em>' reference list.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getProcessPrinciple_PersonalData()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	EList<PersonalDataRequirement> getPersonalData();
+
+} // ProcessPrinciple
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/ProcessRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/ProcessRequirement.java
new file mode 100644
index 0000000..c8b17bd
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/ProcessRequirement.java
@@ -0,0 +1,54 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Process Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement#getRequester <em>Requester</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getProcessRequirement()
+ * @model
+ * @generated
+ */
+public interface ProcessRequirement extends org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Process {
+	/**
+	 * Returns the value of the '<em><b>Requester</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Requester</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Requester</em>' reference list.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getProcessRequirement_Requester()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<Stakeholder> getRequester();
+
+} // ProcessRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PseudonimityRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PseudonimityRequirement.java
new file mode 100644
index 0000000..a07a5f5
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PseudonimityRequirement.java
@@ -0,0 +1,66 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pseudonimity Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement#getKind <em>Kind</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPseudonimityRequirement()
+ * @model
+ * @generated
+ */
+public interface PseudonimityRequirement extends PrivacyRequirement {
+	/**
+	 * Returns the value of the '<em><b>Kind</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Kind</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Kind</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind
+	 * @see #setKind(PseudonymKind)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPseudonimityRequirement_Kind()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	PseudonymKind getKind();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement#getKind <em>Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Kind</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind
+	 * @see #getKind()
+	 * @generated
+	 */
+	void setKind(PseudonymKind value);
+
+} // PseudonimityRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PseudonymKind.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PseudonymKind.java
new file mode 100644
index 0000000..34defaf
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PseudonymKind.java
@@ -0,0 +1,292 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Pseudonym Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPseudonymKind()
+ * @model
+ * @generated
+ */
+public enum PseudonymKind implements Enumerator {
+	/**
+	 * The '<em><b>Person</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PERSON_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PERSON(0, "Person", "Person"),
+
+	/**
+	 * The '<em><b>Role</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ROLE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ROLE(1, "role", "role"),
+
+	/**
+	 * The '<em><b>Relation Ship</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RELATION_SHIP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RELATION_SHIP(2, "relationShip", "relationShip"),
+
+	/**
+	 * The '<em><b>Role Relation Ship</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ROLE_RELATION_SHIP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ROLE_RELATION_SHIP(3, "roleRelationShip", "roleRelationShip"),
+
+	/**
+	 * The '<em><b>Transaction</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TRANSACTION_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TRANSACTION(4, "transaction", "transaction");
+
+	/**
+	 * The '<em><b>Person</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PERSON
+	 * @model name="Person"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PERSON_VALUE = 0;
+
+	/**
+	 * The '<em><b>Role</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ROLE
+	 * @model name="role"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ROLE_VALUE = 1;
+
+	/**
+	 * The '<em><b>Relation Ship</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RELATION_SHIP
+	 * @model name="relationShip"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RELATION_SHIP_VALUE = 2;
+
+	/**
+	 * The '<em><b>Role Relation Ship</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ROLE_RELATION_SHIP
+	 * @model name="roleRelationShip"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ROLE_RELATION_SHIP_VALUE = 3;
+
+	/**
+	 * The '<em><b>Transaction</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TRANSACTION
+	 * @model name="transaction"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TRANSACTION_VALUE = 4;
+
+	/**
+	 * An array of all the '<em><b>Pseudonym Kind</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final PseudonymKind[] VALUES_ARRAY =
+		new PseudonymKind[] {
+			PERSON,
+			ROLE,
+			RELATION_SHIP,
+			ROLE_RELATION_SHIP,
+			TRANSACTION,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Pseudonym Kind</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<PseudonymKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Pseudonym Kind</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static PseudonymKind get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PseudonymKind result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Pseudonym Kind</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static PseudonymKind getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PseudonymKind result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Pseudonym Kind</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static PseudonymKind get(int value) {
+		switch (value) {
+			case PERSON_VALUE: return PERSON;
+			case ROLE_VALUE: return ROLE;
+			case RELATION_SHIP_VALUE: return RELATION_SHIP;
+			case ROLE_RELATION_SHIP_VALUE: return ROLE_RELATION_SHIP;
+			case TRANSACTION_VALUE: return TRANSACTION;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private PseudonymKind(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //PseudonymKind
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PurposeLimitation.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PurposeLimitation.java
new file mode 100644
index 0000000..c2b50d1
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PurposeLimitation.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Purpose Limitation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPurposeLimitation()
+ * @model
+ * @generated
+ */
+public interface PurposeLimitation extends PurposePersonalDataPrinciple {
+} // PurposeLimitation
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PurposePersonalDataPrinciple.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PurposePersonalDataPrinciple.java
new file mode 100644
index 0000000..34ac22b
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/PurposePersonalDataPrinciple.java
@@ -0,0 +1,92 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Purpose;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Purpose Personal Data Principle</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple#getPurpose <em>Purpose</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple#getPersonalData <em>Personal Data</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPurposePersonalDataPrinciple()
+ * @model
+ * @generated
+ */
+public interface PurposePersonalDataPrinciple extends GDPRPrinciple {
+	/**
+	 * Returns the value of the '<em><b>Purpose</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Purpose</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Purpose</em>' reference.
+	 * @see #setPurpose(Purpose)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPurposePersonalDataPrinciple_Purpose()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Purpose getPurpose();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple#getPurpose <em>Purpose</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Purpose</em>' reference.
+	 * @see #getPurpose()
+	 * @generated
+	 */
+	void setPurpose(Purpose value);
+
+	/**
+	 * Returns the value of the '<em><b>Personal Data</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Personal Data</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Personal Data</em>' reference.
+	 * @see #setPersonalData(PersonalData)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getPurposePersonalDataPrinciple_PersonalData()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	PersonalData getPersonalData();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple#getPersonalData <em>Personal Data</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Personal Data</em>' reference.
+	 * @see #getPersonalData()
+	 * @generated
+	 */
+	void setPersonalData(PersonalData value);
+
+} // PurposePersonalDataPrinciple
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/RelatedTo.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/RelatedTo.java
new file mode 100644
index 0000000..2706be2
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/RelatedTo.java
@@ -0,0 +1,153 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Related To</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#isSensitive <em>Sensitive</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getLinkability <em>Linkability</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getBase_Element <em>Base Element</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getRelatedTo()
+ * @model
+ * @generated
+ */
+public interface RelatedTo extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Sensitive</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sensitive</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sensitive</em>' attribute.
+	 * @see #setSensitive(boolean)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getRelatedTo_Sensitive()
+	 * @model dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isSensitive();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#isSensitive <em>Sensitive</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sensitive</em>' attribute.
+	 * @see #isSensitive()
+	 * @generated
+	 */
+	void setSensitive(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Linkability</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Linkability</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Linkability</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @see #setLinkability(Linkability)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getRelatedTo_Linkability()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Linkability getLinkability();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getLinkability <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Linkability</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @see #getLinkability()
+	 * @generated
+	 */
+	void setLinkability(Linkability value);
+
+	/**
+	 * Returns the value of the '<em><b>Collection</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod
+	 * @see #setCollection(CollectionMethod)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getRelatedTo_Collection()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	CollectionMethod getCollection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getCollection <em>Collection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Collection</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod
+	 * @see #getCollection()
+	 * @generated
+	 */
+	void setCollection(CollectionMethod value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Element</em>' reference.
+	 * @see #setBase_Element(Element)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getRelatedTo_Base_Element()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	Element getBase_Element();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getBase_Element <em>Base Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Element</em>' reference.
+	 * @see #getBase_Element()
+	 * @generated
+	 */
+	void setBase_Element(Element value);
+
+} // RelatedTo
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/SecuritySafety.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/SecuritySafety.java
new file mode 100644
index 0000000..cce0e7e
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/SecuritySafety.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Security Safety</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getSecuritySafety()
+ * @model
+ * @generated
+ */
+public interface SecuritySafety extends ProcessPrinciple {
+} // SecuritySafety
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Stakeholder.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Stakeholder.java
new file mode 100644
index 0000000..e3c7689
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Stakeholder.java
@@ -0,0 +1,66 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stakeholder</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder#getBase_NamedElement <em>Base Named Element</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getStakeholder()
+ * @model
+ * @generated
+ */
+public interface Stakeholder extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Named Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Named Element</em>' reference.
+	 * @see #setBase_NamedElement(NamedElement)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getStakeholder_Base_NamedElement()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	NamedElement getBase_NamedElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder#getBase_NamedElement <em>Base Named Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Named Element</em>' reference.
+	 * @see #getBase_NamedElement()
+	 * @generated
+	 */
+	void setBase_NamedElement(NamedElement value);
+
+} // Stakeholder
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/StorageLimitation.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/StorageLimitation.java
new file mode 100644
index 0000000..6ec68f0
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/StorageLimitation.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Storage Limitation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getStorageLimitation()
+ * @model
+ * @generated
+ */
+public interface StorageLimitation extends PurposePersonalDataPrinciple {
+} // StorageLimitation
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Transparency.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Transparency.java
new file mode 100644
index 0000000..b1c6b69
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/Transparency.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transparency</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getTransparency()
+ * @model
+ * @generated
+ */
+public interface Transparency extends ProcessPrinciple {
+} // Transparency
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/UndectabilityRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/UndectabilityRequirement.java
new file mode 100644
index 0000000..5134bf8
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/UndectabilityRequirement.java
@@ -0,0 +1,31 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Undectability Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getUndectabilityRequirement()
+ * @model
+ * @generated
+ */
+public interface UndectabilityRequirement extends PrivacyRequirement {
+} // UndectabilityRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/UnlinkabilityRequirement.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/UnlinkabilityRequirement.java
new file mode 100644
index 0000000..f80ff7f
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/UnlinkabilityRequirement.java
@@ -0,0 +1,66 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Unlinkability Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement#getLinkability <em>Linkability</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getUnlinkabilityRequirement()
+ * @model
+ * @generated
+ */
+public interface UnlinkabilityRequirement extends PrivacyRequirement {
+	/**
+	 * Returns the value of the '<em><b>Linkability</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Linkability</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Linkability</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @see #setLinkability(Linkability)
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#getUnlinkabilityRequirement_Linkability()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Linkability getLinkability();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement#getLinkability <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Linkability</em>' attribute.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @see #getLinkability()
+	 * @generated
+	 */
+	void setLinkability(Linkability value);
+
+} // UnlinkabilityRequirement
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AccuracyImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AccuracyImpl.java
new file mode 100644
index 0000000..bd12039
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AccuracyImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Accuracy</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AccuracyImpl extends PurposePersonalDataPrincipleImpl implements Accuracy {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AccuracyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.ACCURACY;
+	}
+
+} //AccuracyImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AnanomityRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AnanomityRequirementImpl.java
new file mode 100644
index 0000000..6fb92a0
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AnanomityRequirementImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AnanomityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ananomity Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AnanomityRequirementImpl extends UnlinkabilityRequirementImpl implements AnanomityRequirement {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AnanomityRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.ANANOMITY_REQUIREMENT;
+	}
+
+} //AnanomityRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AvailableAtImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AvailableAtImpl.java
new file mode 100644
index 0000000..69c9188
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AvailableAtImpl.java
@@ -0,0 +1,245 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Available At</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableAtImpl#getDuration <em>Duration</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableAtImpl#getBase_Element <em>Base Element</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AvailableAtImpl extends MinimalEObjectImpl.Container implements AvailableAt {
+	/**
+	 * The default value of the '{@link #getDuration() <em>Duration</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDuration()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Duration DURATION_EDEFAULT = Duration.FOR_ACTION;
+
+	/**
+	 * The cached value of the '{@link #getDuration() <em>Duration</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDuration()
+	 * @generated
+	 * @ordered
+	 */
+	protected Duration duration = DURATION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Element() <em>Base Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Element()
+	 * @generated
+	 * @ordered
+	 */
+	protected Element base_Element;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AvailableAtImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.AVAILABLE_AT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Duration getDuration() {
+		return duration;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDuration(Duration newDuration) {
+		Duration oldDuration = duration;
+		duration = newDuration == null ? DURATION_EDEFAULT : newDuration;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.AVAILABLE_AT__DURATION, oldDuration, duration));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Element getBase_Element() {
+		if (base_Element != null && base_Element.eIsProxy()) {
+			InternalEObject oldBase_Element = (InternalEObject)base_Element;
+			base_Element = (Element)eResolveProxy(oldBase_Element);
+			if (base_Element != oldBase_Element) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.AVAILABLE_AT__BASE_ELEMENT, oldBase_Element, base_Element));
+			}
+		}
+		return base_Element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Element basicGetBase_Element() {
+		return base_Element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Element(Element newBase_Element) {
+		Element oldBase_Element = base_Element;
+		base_Element = newBase_Element;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.AVAILABLE_AT__BASE_ELEMENT, oldBase_Element, base_Element));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_AT__DURATION:
+				return getDuration();
+			case pdp4engReqGDPRPackage.AVAILABLE_AT__BASE_ELEMENT:
+				if (resolve) return getBase_Element();
+				return basicGetBase_Element();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_AT__DURATION:
+				setDuration((Duration)newValue);
+				return;
+			case pdp4engReqGDPRPackage.AVAILABLE_AT__BASE_ELEMENT:
+				setBase_Element((Element)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_AT__DURATION:
+				setDuration(DURATION_EDEFAULT);
+				return;
+			case pdp4engReqGDPRPackage.AVAILABLE_AT__BASE_ELEMENT:
+				setBase_Element((Element)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_AT__DURATION:
+				return duration != DURATION_EDEFAULT;
+			case pdp4engReqGDPRPackage.AVAILABLE_AT__BASE_ELEMENT:
+				return base_Element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (duration: ");
+		result.append(duration);
+		result.append(')');
+		return result.toString();
+	}
+
+} //AvailableAtImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AvailableInformationContainerImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AvailableInformationContainerImpl.java
new file mode 100644
index 0000000..c7dba0f
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AvailableInformationContainerImpl.java
@@ -0,0 +1,172 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Available Information Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationContainerImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AvailableInformationContainerImpl extends MinimalEObjectImpl.Container implements AvailableInformationContainer {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AvailableInformationContainerImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.AVAILABLE_INFORMATION_CONTAINER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.AVAILABLE_INFORMATION_CONTAINER__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.AVAILABLE_INFORMATION_CONTAINER__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION_CONTAINER__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION_CONTAINER__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION_CONTAINER__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION_CONTAINER__BASE_PACKAGE:
+				return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //AvailableInformationContainerImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AvailableInformationImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AvailableInformationImpl.java
new file mode 100644
index 0000000..7dc88aa
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/AvailableInformationImpl.java
@@ -0,0 +1,236 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Available Information</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationImpl#getBase_Package <em>Base Package</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationImpl#getConcerns <em>Concerns</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AvailableInformationImpl extends MinimalEObjectImpl.Container implements AvailableInformation {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * The cached value of the '{@link #getConcerns() <em>Concerns</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConcerns()
+	 * @generated
+	 * @ordered
+	 */
+	protected NamedElement concerns;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AvailableInformationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.AVAILABLE_INFORMATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NamedElement getConcerns() {
+		if (concerns != null && concerns.eIsProxy()) {
+			InternalEObject oldConcerns = (InternalEObject)concerns;
+			concerns = (NamedElement)eResolveProxy(oldConcerns);
+			if (concerns != oldConcerns) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__CONCERNS, oldConcerns, concerns));
+			}
+		}
+		return concerns;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamedElement basicGetConcerns() {
+		return concerns;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setConcerns(NamedElement newConcerns) {
+		NamedElement oldConcerns = concerns;
+		concerns = newConcerns;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__CONCERNS, oldConcerns, concerns));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__CONCERNS:
+				if (resolve) return getConcerns();
+				return basicGetConcerns();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__CONCERNS:
+				setConcerns((NamedElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__CONCERNS:
+				setConcerns((NamedElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__BASE_PACKAGE:
+				return base_Package != null;
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION__CONCERNS:
+				return concerns != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //AvailableInformationImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/ControlersImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/ControlersImpl.java
new file mode 100644
index 0000000..06fd7f0
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/ControlersImpl.java
@@ -0,0 +1,172 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Controlers</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ControlersImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ControlersImpl extends MinimalEObjectImpl.Container implements Controlers {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ControlersImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.CONTROLERS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.CONTROLERS__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.CONTROLERS__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.CONTROLERS__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.CONTROLERS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.CONTROLERS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.CONTROLERS__BASE_PACKAGE:
+				return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ControlersImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataFlowRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataFlowRequirementImpl.java
new file mode 100644
index 0000000..04a7df0
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataFlowRequirementImpl.java
@@ -0,0 +1,174 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.Activity;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Flow Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataFlowRequirementImpl#getBase_Activity <em>Base Activity</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DataFlowRequirementImpl extends MinimalEObjectImpl.Container implements DataFlowRequirement {
+	/**
+	 * The cached value of the '{@link #getBase_Activity() <em>Base Activity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Activity()
+	 * @generated
+	 * @ordered
+	 */
+	protected Activity base_Activity;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataFlowRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.DATA_FLOW_REQUIREMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Activity getBase_Activity() {
+		if (base_Activity != null && base_Activity.eIsProxy()) {
+			InternalEObject oldBase_Activity = (InternalEObject)base_Activity;
+			base_Activity = (Activity)eResolveProxy(oldBase_Activity);
+			if (base_Activity != oldBase_Activity) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.DATA_FLOW_REQUIREMENT__BASE_ACTIVITY, oldBase_Activity, base_Activity));
+			}
+		}
+		return base_Activity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Activity basicGetBase_Activity() {
+		return base_Activity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Activity(Activity newBase_Activity) {
+		Activity oldBase_Activity = base_Activity;
+		base_Activity = newBase_Activity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.DATA_FLOW_REQUIREMENT__BASE_ACTIVITY, oldBase_Activity, base_Activity));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_FLOW_REQUIREMENT__BASE_ACTIVITY:
+				if (resolve) return getBase_Activity();
+				return basicGetBase_Activity();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_FLOW_REQUIREMENT__BASE_ACTIVITY:
+				setBase_Activity((Activity)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_FLOW_REQUIREMENT__BASE_ACTIVITY:
+				setBase_Activity((Activity)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_FLOW_REQUIREMENT__BASE_ACTIVITY:
+				return base_Activity != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DataFlowRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataMinimisationImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataMinimisationImpl.java
new file mode 100644
index 0000000..59f9513
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataMinimisationImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Minimisation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DataMinimisationImpl extends PurposePersonalDataPrincipleImpl implements DataMinimisation {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataMinimisationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.DATA_MINIMISATION;
+	}
+
+} //DataMinimisationImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataRecordRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataRecordRequirementImpl.java
new file mode 100644
index 0000000..cc392e4
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataRecordRequirementImpl.java
@@ -0,0 +1,218 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Data;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.DataStoreNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Record Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRecordRequirementImpl#getBase_DataStoreNode <em>Base Data Store Node</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRecordRequirementImpl#getDataList <em>Data List</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DataRecordRequirementImpl extends MinimalEObjectImpl.Container implements DataRecordRequirement {
+	/**
+	 * The cached value of the '{@link #getBase_DataStoreNode() <em>Base Data Store Node</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_DataStoreNode()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataStoreNode base_DataStoreNode;
+
+	/**
+	 * The cached value of the '{@link #getDataList() <em>Data List</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDataList()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Data> dataList;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataRecordRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.DATA_RECORD_REQUIREMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataStoreNode getBase_DataStoreNode() {
+		if (base_DataStoreNode != null && base_DataStoreNode.eIsProxy()) {
+			InternalEObject oldBase_DataStoreNode = (InternalEObject)base_DataStoreNode;
+			base_DataStoreNode = (DataStoreNode)eResolveProxy(oldBase_DataStoreNode);
+			if (base_DataStoreNode != oldBase_DataStoreNode) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__BASE_DATA_STORE_NODE, oldBase_DataStoreNode, base_DataStoreNode));
+			}
+		}
+		return base_DataStoreNode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataStoreNode basicGetBase_DataStoreNode() {
+		return base_DataStoreNode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_DataStoreNode(DataStoreNode newBase_DataStoreNode) {
+		DataStoreNode oldBase_DataStoreNode = base_DataStoreNode;
+		base_DataStoreNode = newBase_DataStoreNode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__BASE_DATA_STORE_NODE, oldBase_DataStoreNode, base_DataStoreNode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Data> getDataList() {
+		if (dataList == null) {
+			dataList = new EObjectResolvingEList<Data>(Data.class, this, pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__DATA_LIST);
+		}
+		return dataList;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__BASE_DATA_STORE_NODE:
+				if (resolve) return getBase_DataStoreNode();
+				return basicGetBase_DataStoreNode();
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__DATA_LIST:
+				return getDataList();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__BASE_DATA_STORE_NODE:
+				setBase_DataStoreNode((DataStoreNode)newValue);
+				return;
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__DATA_LIST:
+				getDataList().clear();
+				getDataList().addAll((Collection<? extends Data>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__BASE_DATA_STORE_NODE:
+				setBase_DataStoreNode((DataStoreNode)null);
+				return;
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__DATA_LIST:
+				getDataList().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__BASE_DATA_STORE_NODE:
+				return base_DataStoreNode != null;
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT__DATA_LIST:
+				return dataList != null && !dataList.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DataRecordRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataRequirementImpl.java
new file mode 100644
index 0000000..78dc347
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataRequirementImpl.java
@@ -0,0 +1,53 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.impl.DataImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DataRequirementImpl extends DataImpl implements DataRequirement {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.DATA_REQUIREMENT;
+	}
+
+} //DataRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataRequirementsImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataRequirementsImpl.java
new file mode 100644
index 0000000..4f63b86
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataRequirementsImpl.java
@@ -0,0 +1,172 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Requirements</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRequirementsImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DataRequirementsImpl extends MinimalEObjectImpl.Container implements DataRequirements {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataRequirementsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.DATA_REQUIREMENTS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.DATA_REQUIREMENTS__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.DATA_REQUIREMENTS__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_REQUIREMENTS__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_REQUIREMENTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_REQUIREMENTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_REQUIREMENTS__BASE_PACKAGE:
+				return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DataRequirementsImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataSubjectsImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataSubjectsImpl.java
new file mode 100644
index 0000000..245d8a5
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataSubjectsImpl.java
@@ -0,0 +1,172 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Subjects</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataSubjectsImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DataSubjectsImpl extends MinimalEObjectImpl.Container implements DataSubjects {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataSubjectsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.DATA_SUBJECTS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.DATA_SUBJECTS__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.DATA_SUBJECTS__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_SUBJECTS__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_SUBJECTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_SUBJECTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_SUBJECTS__BASE_PACKAGE:
+				return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DataSubjectsImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataUnlinkabilityRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataUnlinkabilityRequirementImpl.java
new file mode 100644
index 0000000..2d016de
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DataUnlinkabilityRequirementImpl.java
@@ -0,0 +1,173 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataUnlinkabilityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Unlinkability Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataUnlinkabilityRequirementImpl#getLinks <em>Links</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DataUnlinkabilityRequirementImpl extends UnlinkabilityRequirementImpl implements DataUnlinkabilityRequirement {
+	/**
+	 * The cached value of the '{@link #getLinks() <em>Links</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinks()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<NamedElement> links;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataUnlinkabilityRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.DATA_UNLINKABILITY_REQUIREMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<NamedElement> getLinks() {
+		if (links == null) {
+			links = new EObjectResolvingEList<NamedElement>(NamedElement.class, this, pdp4engReqGDPRPackage.DATA_UNLINKABILITY_REQUIREMENT__LINKS);
+		}
+		return links;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamedElement getLinks(String name) {
+		return getLinks(name, false, null);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamedElement getLinks(String name, boolean ignoreCase, EClass eClass) {
+		linksLoop: for (NamedElement links : getLinks()) {
+			if (eClass != null && !eClass.isInstance(links))
+				continue linksLoop;
+			if (name != null && !(ignoreCase ? name.equalsIgnoreCase(links.getName()) : name.equals(links.getName())))
+				continue linksLoop;
+			return links;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_UNLINKABILITY_REQUIREMENT__LINKS:
+				return getLinks();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_UNLINKABILITY_REQUIREMENT__LINKS:
+				getLinks().clear();
+				getLinks().addAll((Collection<? extends NamedElement>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_UNLINKABILITY_REQUIREMENT__LINKS:
+				getLinks().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DATA_UNLINKABILITY_REQUIREMENT__LINKS:
+				return links != null && !links.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DataUnlinkabilityRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DerivedFromImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DerivedFromImpl.java
new file mode 100644
index 0000000..1291cf3
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/DerivedFromImpl.java
@@ -0,0 +1,174 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Derived From</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DerivedFromImpl#getBase_Element <em>Base Element</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DerivedFromImpl extends MinimalEObjectImpl.Container implements DerivedFrom {
+	/**
+	 * The cached value of the '{@link #getBase_Element() <em>Base Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Element()
+	 * @generated
+	 * @ordered
+	 */
+	protected Element base_Element;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DerivedFromImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.DERIVED_FROM;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Element getBase_Element() {
+		if (base_Element != null && base_Element.eIsProxy()) {
+			InternalEObject oldBase_Element = (InternalEObject)base_Element;
+			base_Element = (Element)eResolveProxy(oldBase_Element);
+			if (base_Element != oldBase_Element) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.DERIVED_FROM__BASE_ELEMENT, oldBase_Element, base_Element));
+			}
+		}
+		return base_Element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Element basicGetBase_Element() {
+		return base_Element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Element(Element newBase_Element) {
+		Element oldBase_Element = base_Element;
+		base_Element = newBase_Element;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.DERIVED_FROM__BASE_ELEMENT, oldBase_Element, base_Element));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DERIVED_FROM__BASE_ELEMENT:
+				if (resolve) return getBase_Element();
+				return basicGetBase_Element();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DERIVED_FROM__BASE_ELEMENT:
+				setBase_Element((Element)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DERIVED_FROM__BASE_ELEMENT:
+				setBase_Element((Element)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.DERIVED_FROM__BASE_ELEMENT:
+				return base_Element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DerivedFromImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/FairlyImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/FairlyImpl.java
new file mode 100644
index 0000000..a537fbc
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/FairlyImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Fairly</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class FairlyImpl extends ProcessPrincipleImpl implements Fairly {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FairlyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.FAIRLY;
+	}
+
+} //FairlyImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/FunctionalRequirementsImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/FunctionalRequirementsImpl.java
new file mode 100644
index 0000000..1b13834
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/FunctionalRequirementsImpl.java
@@ -0,0 +1,172 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Functional Requirements</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.FunctionalRequirementsImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FunctionalRequirementsImpl extends MinimalEObjectImpl.Container implements FunctionalRequirements {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FunctionalRequirementsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.FUNCTIONAL_REQUIREMENTS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE:
+				return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //FunctionalRequirementsImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/GDPRPrincipleImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/GDPRPrincipleImpl.java
new file mode 100644
index 0000000..2f26fee
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/GDPRPrincipleImpl.java
@@ -0,0 +1,174 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>GDPR Principle</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GDPRPrincipleImpl#getBase_NamedElement <em>Base Named Element</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GDPRPrincipleImpl extends MinimalEObjectImpl.Container implements GDPRPrinciple {
+	/**
+	 * The cached value of the '{@link #getBase_NamedElement() <em>Base Named Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_NamedElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected NamedElement base_NamedElement;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GDPRPrincipleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.GDPR_PRINCIPLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NamedElement getBase_NamedElement() {
+		if (base_NamedElement != null && base_NamedElement.eIsProxy()) {
+			InternalEObject oldBase_NamedElement = (InternalEObject)base_NamedElement;
+			base_NamedElement = (NamedElement)eResolveProxy(oldBase_NamedElement);
+			if (base_NamedElement != oldBase_NamedElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.GDPR_PRINCIPLE__BASE_NAMED_ELEMENT, oldBase_NamedElement, base_NamedElement));
+			}
+		}
+		return base_NamedElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamedElement basicGetBase_NamedElement() {
+		return base_NamedElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_NamedElement(NamedElement newBase_NamedElement) {
+		NamedElement oldBase_NamedElement = base_NamedElement;
+		base_NamedElement = newBase_NamedElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.GDPR_PRINCIPLE__BASE_NAMED_ELEMENT, oldBase_NamedElement, base_NamedElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.GDPR_PRINCIPLE__BASE_NAMED_ELEMENT:
+				if (resolve) return getBase_NamedElement();
+				return basicGetBase_NamedElement();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.GDPR_PRINCIPLE__BASE_NAMED_ELEMENT:
+				setBase_NamedElement((NamedElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.GDPR_PRINCIPLE__BASE_NAMED_ELEMENT:
+				setBase_NamedElement((NamedElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.GDPR_PRINCIPLE__BASE_NAMED_ELEMENT:
+				return base_NamedElement != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //GDPRPrincipleImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/GeneratedRequirementsImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/GeneratedRequirementsImpl.java
new file mode 100644
index 0000000..b34b218
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/GeneratedRequirementsImpl.java
@@ -0,0 +1,172 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generated Requirements</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GeneratedRequirementsImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GeneratedRequirementsImpl extends MinimalEObjectImpl.Container implements GeneratedRequirements {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GeneratedRequirementsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.GENERATED_REQUIREMENTS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.GENERATED_REQUIREMENTS__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.GENERATED_REQUIREMENTS__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.GENERATED_REQUIREMENTS__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.GENERATED_REQUIREMENTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.GENERATED_REQUIREMENTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.GENERATED_REQUIREMENTS__BASE_PACKAGE:
+				return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //GeneratedRequirementsImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByConsentImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByConsentImpl.java
new file mode 100644
index 0000000..270b6b7
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByConsentImpl.java
@@ -0,0 +1,173 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Consent;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lawful By Consent</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByConsentImpl#getConsent <em>Consent</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LawfulByConsentImpl extends LawfulImpl implements LawfulByConsent {
+	/**
+	 * The cached value of the '{@link #getConsent() <em>Consent</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConsent()
+	 * @generated
+	 * @ordered
+	 */
+	protected Consent consent;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LawfulByConsentImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.LAWFUL_BY_CONSENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Consent getConsent() {
+		if (consent != null && consent.eIsProxy()) {
+			InternalEObject oldConsent = (InternalEObject)consent;
+			consent = (Consent)eResolveProxy(oldConsent);
+			if (consent != oldConsent) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.LAWFUL_BY_CONSENT__CONSENT, oldConsent, consent));
+			}
+		}
+		return consent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Consent basicGetConsent() {
+		return consent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setConsent(Consent newConsent) {
+		Consent oldConsent = consent;
+		consent = newConsent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LAWFUL_BY_CONSENT__CONSENT, oldConsent, consent));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONSENT__CONSENT:
+				if (resolve) return getConsent();
+				return basicGetConsent();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONSENT__CONSENT:
+				setConsent((Consent)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONSENT__CONSENT:
+				setConsent((Consent)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONSENT__CONSENT:
+				return consent != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //LawfulByConsentImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByContractImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByContractImpl.java
new file mode 100644
index 0000000..296e7d6
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByContractImpl.java
@@ -0,0 +1,173 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Contract;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lawful By Contract</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByContractImpl#getContract <em>Contract</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LawfulByContractImpl extends LawfulImpl implements LawfulByContract {
+	/**
+	 * The cached value of the '{@link #getContract() <em>Contract</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getContract()
+	 * @generated
+	 * @ordered
+	 */
+	protected Contract contract;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LawfulByContractImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.LAWFUL_BY_CONTRACT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Contract getContract() {
+		if (contract != null && contract.eIsProxy()) {
+			InternalEObject oldContract = (InternalEObject)contract;
+			contract = (Contract)eResolveProxy(oldContract);
+			if (contract != oldContract) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.LAWFUL_BY_CONTRACT__CONTRACT, oldContract, contract));
+			}
+		}
+		return contract;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Contract basicGetContract() {
+		return contract;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setContract(Contract newContract) {
+		Contract oldContract = contract;
+		contract = newContract;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LAWFUL_BY_CONTRACT__CONTRACT, oldContract, contract));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONTRACT__CONTRACT:
+				if (resolve) return getContract();
+				return basicGetContract();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONTRACT__CONTRACT:
+				setContract((Contract)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONTRACT__CONTRACT:
+				setContract((Contract)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONTRACT__CONTRACT:
+				return contract != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //LawfulByContractImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByLegalObligationImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByLegalObligationImpl.java
new file mode 100644
index 0000000..0d7b08e
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByLegalObligationImpl.java
@@ -0,0 +1,173 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.LegalObligation;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lawful By Legal Obligation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegalObligationImpl#getLegalObligation <em>Legal Obligation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LawfulByLegalObligationImpl extends LawfulImpl implements LawfulByLegalObligation {
+	/**
+	 * The cached value of the '{@link #getLegalObligation() <em>Legal Obligation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLegalObligation()
+	 * @generated
+	 * @ordered
+	 */
+	protected LegalObligation legalObligation;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LawfulByLegalObligationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.LAWFUL_BY_LEGAL_OBLIGATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public LegalObligation getLegalObligation() {
+		if (legalObligation != null && legalObligation.eIsProxy()) {
+			InternalEObject oldLegalObligation = (InternalEObject)legalObligation;
+			legalObligation = (LegalObligation)eResolveProxy(oldLegalObligation);
+			if (legalObligation != oldLegalObligation) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.LAWFUL_BY_LEGAL_OBLIGATION__LEGAL_OBLIGATION, oldLegalObligation, legalObligation));
+			}
+		}
+		return legalObligation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LegalObligation basicGetLegalObligation() {
+		return legalObligation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setLegalObligation(LegalObligation newLegalObligation) {
+		LegalObligation oldLegalObligation = legalObligation;
+		legalObligation = newLegalObligation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LAWFUL_BY_LEGAL_OBLIGATION__LEGAL_OBLIGATION, oldLegalObligation, legalObligation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGAL_OBLIGATION__LEGAL_OBLIGATION:
+				if (resolve) return getLegalObligation();
+				return basicGetLegalObligation();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGAL_OBLIGATION__LEGAL_OBLIGATION:
+				setLegalObligation((LegalObligation)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGAL_OBLIGATION__LEGAL_OBLIGATION:
+				setLegalObligation((LegalObligation)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGAL_OBLIGATION__LEGAL_OBLIGATION:
+				return legalObligation != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //LawfulByLegalObligationImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByLegitimateInterestImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByLegitimateInterestImpl.java
new file mode 100644
index 0000000..5ff6dbb
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByLegitimateInterestImpl.java
@@ -0,0 +1,173 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.LegitimateInterest;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lawful By Legitimate Interest</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegitimateInterestImpl#getLegitimateInterest <em>Legitimate Interest</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LawfulByLegitimateInterestImpl extends LawfulImpl implements LawfulByLegitimateInterest {
+	/**
+	 * The cached value of the '{@link #getLegitimateInterest() <em>Legitimate Interest</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLegitimateInterest()
+	 * @generated
+	 * @ordered
+	 */
+	protected LegitimateInterest legitimateInterest;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LawfulByLegitimateInterestImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.LAWFUL_BY_LEGITIMATE_INTEREST;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public LegitimateInterest getLegitimateInterest() {
+		if (legitimateInterest != null && legitimateInterest.eIsProxy()) {
+			InternalEObject oldLegitimateInterest = (InternalEObject)legitimateInterest;
+			legitimateInterest = (LegitimateInterest)eResolveProxy(oldLegitimateInterest);
+			if (legitimateInterest != oldLegitimateInterest) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.LAWFUL_BY_LEGITIMATE_INTEREST__LEGITIMATE_INTEREST, oldLegitimateInterest, legitimateInterest));
+			}
+		}
+		return legitimateInterest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LegitimateInterest basicGetLegitimateInterest() {
+		return legitimateInterest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setLegitimateInterest(LegitimateInterest newLegitimateInterest) {
+		LegitimateInterest oldLegitimateInterest = legitimateInterest;
+		legitimateInterest = newLegitimateInterest;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LAWFUL_BY_LEGITIMATE_INTEREST__LEGITIMATE_INTEREST, oldLegitimateInterest, legitimateInterest));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGITIMATE_INTEREST__LEGITIMATE_INTEREST:
+				if (resolve) return getLegitimateInterest();
+				return basicGetLegitimateInterest();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGITIMATE_INTEREST__LEGITIMATE_INTEREST:
+				setLegitimateInterest((LegitimateInterest)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGITIMATE_INTEREST__LEGITIMATE_INTEREST:
+				setLegitimateInterest((LegitimateInterest)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGITIMATE_INTEREST__LEGITIMATE_INTEREST:
+				return legitimateInterest != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //LawfulByLegitimateInterestImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByPublicInterestImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByPublicInterestImpl.java
new file mode 100644
index 0000000..5006232
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByPublicInterestImpl.java
@@ -0,0 +1,173 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PublicInterest;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lawful By Public Interest</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByPublicInterestImpl#getPublicInterest <em>Public Interest</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LawfulByPublicInterestImpl extends LawfulImpl implements LawfulByPublicInterest {
+	/**
+	 * The cached value of the '{@link #getPublicInterest() <em>Public Interest</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPublicInterest()
+	 * @generated
+	 * @ordered
+	 */
+	protected PublicInterest publicInterest;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LawfulByPublicInterestImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.LAWFUL_BY_PUBLIC_INTEREST;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PublicInterest getPublicInterest() {
+		if (publicInterest != null && publicInterest.eIsProxy()) {
+			InternalEObject oldPublicInterest = (InternalEObject)publicInterest;
+			publicInterest = (PublicInterest)eResolveProxy(oldPublicInterest);
+			if (publicInterest != oldPublicInterest) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.LAWFUL_BY_PUBLIC_INTEREST__PUBLIC_INTEREST, oldPublicInterest, publicInterest));
+			}
+		}
+		return publicInterest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PublicInterest basicGetPublicInterest() {
+		return publicInterest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setPublicInterest(PublicInterest newPublicInterest) {
+		PublicInterest oldPublicInterest = publicInterest;
+		publicInterest = newPublicInterest;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LAWFUL_BY_PUBLIC_INTEREST__PUBLIC_INTEREST, oldPublicInterest, publicInterest));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_PUBLIC_INTEREST__PUBLIC_INTEREST:
+				if (resolve) return getPublicInterest();
+				return basicGetPublicInterest();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_PUBLIC_INTEREST__PUBLIC_INTEREST:
+				setPublicInterest((PublicInterest)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_PUBLIC_INTEREST__PUBLIC_INTEREST:
+				setPublicInterest((PublicInterest)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_PUBLIC_INTEREST__PUBLIC_INTEREST:
+				return publicInterest != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //LawfulByPublicInterestImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByVitalInterestImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByVitalInterestImpl.java
new file mode 100644
index 0000000..697885f
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulByVitalInterestImpl.java
@@ -0,0 +1,173 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.VitalInterest;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lawful By Vital Interest</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByVitalInterestImpl#getVitalInterest <em>Vital Interest</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LawfulByVitalInterestImpl extends LawfulImpl implements LawfulByVitalInterest {
+	/**
+	 * The cached value of the '{@link #getVitalInterest() <em>Vital Interest</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVitalInterest()
+	 * @generated
+	 * @ordered
+	 */
+	protected VitalInterest vitalInterest;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LawfulByVitalInterestImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.LAWFUL_BY_VITAL_INTEREST;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public VitalInterest getVitalInterest() {
+		if (vitalInterest != null && vitalInterest.eIsProxy()) {
+			InternalEObject oldVitalInterest = (InternalEObject)vitalInterest;
+			vitalInterest = (VitalInterest)eResolveProxy(oldVitalInterest);
+			if (vitalInterest != oldVitalInterest) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.LAWFUL_BY_VITAL_INTEREST__VITAL_INTEREST, oldVitalInterest, vitalInterest));
+			}
+		}
+		return vitalInterest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VitalInterest basicGetVitalInterest() {
+		return vitalInterest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setVitalInterest(VitalInterest newVitalInterest) {
+		VitalInterest oldVitalInterest = vitalInterest;
+		vitalInterest = newVitalInterest;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LAWFUL_BY_VITAL_INTEREST__VITAL_INTEREST, oldVitalInterest, vitalInterest));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_VITAL_INTEREST__VITAL_INTEREST:
+				if (resolve) return getVitalInterest();
+				return basicGetVitalInterest();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_VITAL_INTEREST__VITAL_INTEREST:
+				setVitalInterest((VitalInterest)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_VITAL_INTEREST__VITAL_INTEREST:
+				setVitalInterest((VitalInterest)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LAWFUL_BY_VITAL_INTEREST__VITAL_INTEREST:
+				return vitalInterest != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //LawfulByVitalInterestImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulImpl.java
new file mode 100644
index 0000000..77f391b
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LawfulImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lawful</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class LawfulImpl extends ProcessPrincipleImpl implements Lawful {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LawfulImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.LAWFUL;
+	}
+
+} //LawfulImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LinkImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LinkImpl.java
new file mode 100644
index 0000000..61dbb51
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LinkImpl.java
@@ -0,0 +1,245 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Link</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkImpl#getBase_NamedElement <em>Base Named Element</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkImpl#getLinkability <em>Linkability</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LinkImpl extends MinimalEObjectImpl.Container implements Link {
+	/**
+	 * The cached value of the '{@link #getBase_NamedElement() <em>Base Named Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_NamedElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected NamedElement base_NamedElement;
+
+	/**
+	 * The default value of the '{@link #getLinkability() <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkability()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Linkability LINKABILITY_EDEFAULT = Linkability.SINGLE;
+
+	/**
+	 * The cached value of the '{@link #getLinkability() <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkability()
+	 * @generated
+	 * @ordered
+	 */
+	protected Linkability linkability = LINKABILITY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LinkImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.LINK;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NamedElement getBase_NamedElement() {
+		if (base_NamedElement != null && base_NamedElement.eIsProxy()) {
+			InternalEObject oldBase_NamedElement = (InternalEObject)base_NamedElement;
+			base_NamedElement = (NamedElement)eResolveProxy(oldBase_NamedElement);
+			if (base_NamedElement != oldBase_NamedElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.LINK__BASE_NAMED_ELEMENT, oldBase_NamedElement, base_NamedElement));
+			}
+		}
+		return base_NamedElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamedElement basicGetBase_NamedElement() {
+		return base_NamedElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_NamedElement(NamedElement newBase_NamedElement) {
+		NamedElement oldBase_NamedElement = base_NamedElement;
+		base_NamedElement = newBase_NamedElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LINK__BASE_NAMED_ELEMENT, oldBase_NamedElement, base_NamedElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Linkability getLinkability() {
+		return linkability;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setLinkability(Linkability newLinkability) {
+		Linkability oldLinkability = linkability;
+		linkability = newLinkability == null ? LINKABILITY_EDEFAULT : newLinkability;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LINK__LINKABILITY, oldLinkability, linkability));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LINK__BASE_NAMED_ELEMENT:
+				if (resolve) return getBase_NamedElement();
+				return basicGetBase_NamedElement();
+			case pdp4engReqGDPRPackage.LINK__LINKABILITY:
+				return getLinkability();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LINK__BASE_NAMED_ELEMENT:
+				setBase_NamedElement((NamedElement)newValue);
+				return;
+			case pdp4engReqGDPRPackage.LINK__LINKABILITY:
+				setLinkability((Linkability)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LINK__BASE_NAMED_ELEMENT:
+				setBase_NamedElement((NamedElement)null);
+				return;
+			case pdp4engReqGDPRPackage.LINK__LINKABILITY:
+				setLinkability(LINKABILITY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LINK__BASE_NAMED_ELEMENT:
+				return base_NamedElement != null;
+			case pdp4engReqGDPRPackage.LINK__LINKABILITY:
+				return linkability != LINKABILITY_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (linkability: ");
+		result.append(linkability);
+		result.append(')');
+		return result.toString();
+	}
+
+} //LinkImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LinkableImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LinkableImpl.java
new file mode 100644
index 0000000..69336cf
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/LinkableImpl.java
@@ -0,0 +1,302 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Linkable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkableImpl#getDuration <em>Duration</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkableImpl#getLinkability <em>Linkability</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkableImpl#getBase_Element <em>Base Element</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LinkableImpl extends MinimalEObjectImpl.Container implements Linkable {
+	/**
+	 * The default value of the '{@link #getDuration() <em>Duration</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDuration()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Duration DURATION_EDEFAULT = Duration.FOR_ACTION;
+
+	/**
+	 * The cached value of the '{@link #getDuration() <em>Duration</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDuration()
+	 * @generated
+	 * @ordered
+	 */
+	protected Duration duration = DURATION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLinkability() <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkability()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Linkability LINKABILITY_EDEFAULT = Linkability.SINGLE;
+
+	/**
+	 * The cached value of the '{@link #getLinkability() <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkability()
+	 * @generated
+	 * @ordered
+	 */
+	protected Linkability linkability = LINKABILITY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Element() <em>Base Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Element()
+	 * @generated
+	 * @ordered
+	 */
+	protected Element base_Element;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LinkableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.LINKABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Duration getDuration() {
+		return duration;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDuration(Duration newDuration) {
+		Duration oldDuration = duration;
+		duration = newDuration == null ? DURATION_EDEFAULT : newDuration;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LINKABLE__DURATION, oldDuration, duration));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Linkability getLinkability() {
+		return linkability;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setLinkability(Linkability newLinkability) {
+		Linkability oldLinkability = linkability;
+		linkability = newLinkability == null ? LINKABILITY_EDEFAULT : newLinkability;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LINKABLE__LINKABILITY, oldLinkability, linkability));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Element getBase_Element() {
+		if (base_Element != null && base_Element.eIsProxy()) {
+			InternalEObject oldBase_Element = (InternalEObject)base_Element;
+			base_Element = (Element)eResolveProxy(oldBase_Element);
+			if (base_Element != oldBase_Element) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.LINKABLE__BASE_ELEMENT, oldBase_Element, base_Element));
+			}
+		}
+		return base_Element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Element basicGetBase_Element() {
+		return base_Element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Element(Element newBase_Element) {
+		Element oldBase_Element = base_Element;
+		base_Element = newBase_Element;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.LINKABLE__BASE_ELEMENT, oldBase_Element, base_Element));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LINKABLE__DURATION:
+				return getDuration();
+			case pdp4engReqGDPRPackage.LINKABLE__LINKABILITY:
+				return getLinkability();
+			case pdp4engReqGDPRPackage.LINKABLE__BASE_ELEMENT:
+				if (resolve) return getBase_Element();
+				return basicGetBase_Element();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LINKABLE__DURATION:
+				setDuration((Duration)newValue);
+				return;
+			case pdp4engReqGDPRPackage.LINKABLE__LINKABILITY:
+				setLinkability((Linkability)newValue);
+				return;
+			case pdp4engReqGDPRPackage.LINKABLE__BASE_ELEMENT:
+				setBase_Element((Element)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LINKABLE__DURATION:
+				setDuration(DURATION_EDEFAULT);
+				return;
+			case pdp4engReqGDPRPackage.LINKABLE__LINKABILITY:
+				setLinkability(LINKABILITY_EDEFAULT);
+				return;
+			case pdp4engReqGDPRPackage.LINKABLE__BASE_ELEMENT:
+				setBase_Element((Element)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.LINKABLE__DURATION:
+				return duration != DURATION_EDEFAULT;
+			case pdp4engReqGDPRPackage.LINKABLE__LINKABILITY:
+				return linkability != LINKABILITY_EDEFAULT;
+			case pdp4engReqGDPRPackage.LINKABLE__BASE_ELEMENT:
+				return base_Element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (duration: ");
+		result.append(duration);
+		result.append(", linkability: ");
+		result.append(linkability);
+		result.append(')');
+		return result.toString();
+	}
+
+} //LinkableImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/NonFunctionalRequirementsImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/NonFunctionalRequirementsImpl.java
new file mode 100644
index 0000000..41aac54
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/NonFunctionalRequirementsImpl.java
@@ -0,0 +1,172 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Non Functional Requirements</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.NonFunctionalRequirementsImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NonFunctionalRequirementsImpl extends MinimalEObjectImpl.Container implements NonFunctionalRequirements {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected NonFunctionalRequirementsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.NON_FUNCTIONAL_REQUIREMENTS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.NON_FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.NON_FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.NON_FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.NON_FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.NON_FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.NON_FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE:
+				return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //NonFunctionalRequirementsImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PersonalDataRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PersonalDataRequirementImpl.java
new file mode 100644
index 0000000..67cbc25
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PersonalDataRequirementImpl.java
@@ -0,0 +1,175 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.impl.PersonalDataImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Personal Data Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalDataRequirementImpl#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PersonalDataRequirementImpl extends PersonalDataImpl implements PersonalDataRequirement {
+	/**
+	 * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected Element source;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PersonalDataRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.PERSONAL_DATA_REQUIREMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Element getSource() {
+		if (source != null && source.eIsProxy()) {
+			InternalEObject oldSource = (InternalEObject)source;
+			source = (Element)eResolveProxy(oldSource);
+			if (source != oldSource) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PERSONAL_DATA_REQUIREMENT__SOURCE, oldSource, source));
+			}
+		}
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Element basicGetSource() {
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setSource(Element newSource) {
+		Element oldSource = source;
+		source = newSource;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PERSONAL_DATA_REQUIREMENT__SOURCE, oldSource, source));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_DATA_REQUIREMENT__SOURCE:
+				if (resolve) return getSource();
+				return basicGetSource();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_DATA_REQUIREMENT__SOURCE:
+				setSource((Element)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_DATA_REQUIREMENT__SOURCE:
+				setSource((Element)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_DATA_REQUIREMENT__SOURCE:
+				return source != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //PersonalDataRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PersonalInformationContainerImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PersonalInformationContainerImpl.java
new file mode 100644
index 0000000..100530f
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PersonalInformationContainerImpl.java
@@ -0,0 +1,172 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Personal Information Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationContainerImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PersonalInformationContainerImpl extends MinimalEObjectImpl.Container implements PersonalInformationContainer {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PersonalInformationContainerImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.PERSONAL_INFORMATION_CONTAINER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PERSONAL_INFORMATION_CONTAINER__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PERSONAL_INFORMATION_CONTAINER__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION_CONTAINER__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION_CONTAINER__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION_CONTAINER__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION_CONTAINER__BASE_PACKAGE:
+				return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //PersonalInformationContainerImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PersonalInformationImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PersonalInformationImpl.java
new file mode 100644
index 0000000..453bce0
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PersonalInformationImpl.java
@@ -0,0 +1,236 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Personal Information</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationImpl#getBase_Package <em>Base Package</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationImpl#getConcerns <em>Concerns</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PersonalInformationImpl extends MinimalEObjectImpl.Container implements PersonalInformation {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * The cached value of the '{@link #getConcerns() <em>Concerns</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConcerns()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataSubject concerns;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PersonalInformationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.PERSONAL_INFORMATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PERSONAL_INFORMATION__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PERSONAL_INFORMATION__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataSubject getConcerns() {
+		if (concerns != null && concerns.eIsProxy()) {
+			InternalEObject oldConcerns = (InternalEObject)concerns;
+			concerns = (DataSubject)eResolveProxy(oldConcerns);
+			if (concerns != oldConcerns) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PERSONAL_INFORMATION__CONCERNS, oldConcerns, concerns));
+			}
+		}
+		return concerns;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataSubject basicGetConcerns() {
+		return concerns;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setConcerns(DataSubject newConcerns) {
+		DataSubject oldConcerns = concerns;
+		concerns = newConcerns;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PERSONAL_INFORMATION__CONCERNS, oldConcerns, concerns));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION__CONCERNS:
+				if (resolve) return getConcerns();
+				return basicGetConcerns();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION__CONCERNS:
+				setConcerns((DataSubject)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION__CONCERNS:
+				setConcerns((DataSubject)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION__BASE_PACKAGE:
+				return base_Package != null;
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION__CONCERNS:
+				return concerns != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //PersonalInformationImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PrivacyRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PrivacyRequirementImpl.java
new file mode 100644
index 0000000..a6dbaba
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PrivacyRequirementImpl.java
@@ -0,0 +1,341 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Privacy Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PrivacyRequirementImpl#getBase_NamedElement <em>Base Named Element</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PrivacyRequirementImpl#getDataSubject <em>Data Subject</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PrivacyRequirementImpl#getCounterstakeholders <em>Counterstakeholders</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PrivacyRequirementImpl#getPersonalData <em>Personal Data</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PrivacyRequirementImpl extends MinimalEObjectImpl.Container implements PrivacyRequirement {
+	/**
+	 * The cached value of the '{@link #getBase_NamedElement() <em>Base Named Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_NamedElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected NamedElement base_NamedElement;
+
+	/**
+	 * The cached value of the '{@link #getDataSubject() <em>Data Subject</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDataSubject()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataSubject dataSubject;
+
+	/**
+	 * The cached value of the '{@link #getCounterstakeholders() <em>Counterstakeholders</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCounterstakeholders()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<NamedElement> counterstakeholders;
+
+	/**
+	 * The cached value of the '{@link #getPersonalData() <em>Personal Data</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPersonalData()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<PersonalData> personalData;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PrivacyRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.PRIVACY_REQUIREMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NamedElement getBase_NamedElement() {
+		if (base_NamedElement != null && base_NamedElement.eIsProxy()) {
+			InternalEObject oldBase_NamedElement = (InternalEObject)base_NamedElement;
+			base_NamedElement = (NamedElement)eResolveProxy(oldBase_NamedElement);
+			if (base_NamedElement != oldBase_NamedElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT, oldBase_NamedElement, base_NamedElement));
+			}
+		}
+		return base_NamedElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamedElement basicGetBase_NamedElement() {
+		return base_NamedElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_NamedElement(NamedElement newBase_NamedElement) {
+		NamedElement oldBase_NamedElement = base_NamedElement;
+		base_NamedElement = newBase_NamedElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT, oldBase_NamedElement, base_NamedElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataSubject getDataSubject() {
+		if (dataSubject != null && dataSubject.eIsProxy()) {
+			InternalEObject oldDataSubject = (InternalEObject)dataSubject;
+			dataSubject = (DataSubject)eResolveProxy(oldDataSubject);
+			if (dataSubject != oldDataSubject) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__DATA_SUBJECT, oldDataSubject, dataSubject));
+			}
+		}
+		return dataSubject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataSubject basicGetDataSubject() {
+		return dataSubject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDataSubject(DataSubject newDataSubject) {
+		DataSubject oldDataSubject = dataSubject;
+		dataSubject = newDataSubject;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__DATA_SUBJECT, oldDataSubject, dataSubject));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<NamedElement> getCounterstakeholders() {
+		if (counterstakeholders == null) {
+			counterstakeholders = new EObjectResolvingEList<NamedElement>(NamedElement.class, this, pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS);
+		}
+		return counterstakeholders;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamedElement getCounterstakeholders(String name) {
+		return getCounterstakeholders(name, false, null);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamedElement getCounterstakeholders(String name, boolean ignoreCase, EClass eClass) {
+		counterstakeholdersLoop: for (NamedElement counterstakeholders : getCounterstakeholders()) {
+			if (eClass != null && !eClass.isInstance(counterstakeholders))
+				continue counterstakeholdersLoop;
+			if (name != null && !(ignoreCase ? name.equalsIgnoreCase(counterstakeholders.getName()) : name.equals(counterstakeholders.getName())))
+				continue counterstakeholdersLoop;
+			return counterstakeholders;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<PersonalData> getPersonalData() {
+		if (personalData == null) {
+			personalData = new EObjectResolvingEList<PersonalData>(PersonalData.class, this, pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__PERSONAL_DATA);
+		}
+		return personalData;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT:
+				if (resolve) return getBase_NamedElement();
+				return basicGetBase_NamedElement();
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__DATA_SUBJECT:
+				if (resolve) return getDataSubject();
+				return basicGetDataSubject();
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS:
+				return getCounterstakeholders();
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__PERSONAL_DATA:
+				return getPersonalData();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT:
+				setBase_NamedElement((NamedElement)newValue);
+				return;
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__DATA_SUBJECT:
+				setDataSubject((DataSubject)newValue);
+				return;
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS:
+				getCounterstakeholders().clear();
+				getCounterstakeholders().addAll((Collection<? extends NamedElement>)newValue);
+				return;
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__PERSONAL_DATA:
+				getPersonalData().clear();
+				getPersonalData().addAll((Collection<? extends PersonalData>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT:
+				setBase_NamedElement((NamedElement)null);
+				return;
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__DATA_SUBJECT:
+				setDataSubject((DataSubject)null);
+				return;
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS:
+				getCounterstakeholders().clear();
+				return;
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__PERSONAL_DATA:
+				getPersonalData().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT:
+				return base_NamedElement != null;
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__DATA_SUBJECT:
+				return dataSubject != null;
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS:
+				return counterstakeholders != null && !counterstakeholders.isEmpty();
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT__PERSONAL_DATA:
+				return personalData != null && !personalData.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //PrivacyRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/ProcessPrincipleImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/ProcessPrincipleImpl.java
new file mode 100644
index 0000000..cfd47ed
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/ProcessPrincipleImpl.java
@@ -0,0 +1,279 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.DataSubject;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Process Principle</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessPrincipleImpl#getProcess <em>Process</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessPrincipleImpl#getDataSubject <em>Data Subject</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessPrincipleImpl#getPersonalData <em>Personal Data</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ProcessPrincipleImpl extends GDPRPrincipleImpl implements ProcessPrinciple {
+	/**
+	 * The cached value of the '{@link #getProcess() <em>Process</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProcess()
+	 * @generated
+	 * @ordered
+	 */
+	protected ProcessRequirement process;
+
+	/**
+	 * The cached value of the '{@link #getDataSubject() <em>Data Subject</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDataSubject()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataSubject dataSubject;
+
+	/**
+	 * The cached value of the '{@link #getPersonalData() <em>Personal Data</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPersonalData()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<PersonalDataRequirement> personalData;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ProcessPrincipleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.PROCESS_PRINCIPLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ProcessRequirement getProcess() {
+		if (process != null && process.eIsProxy()) {
+			InternalEObject oldProcess = (InternalEObject)process;
+			process = (ProcessRequirement)eResolveProxy(oldProcess);
+			if (process != oldProcess) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PROCESS, oldProcess, process));
+			}
+		}
+		return process;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ProcessRequirement basicGetProcess() {
+		return process;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setProcess(ProcessRequirement newProcess) {
+		ProcessRequirement oldProcess = process;
+		process = newProcess;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PROCESS, oldProcess, process));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataSubject getDataSubject() {
+		if (dataSubject != null && dataSubject.eIsProxy()) {
+			InternalEObject oldDataSubject = (InternalEObject)dataSubject;
+			dataSubject = (DataSubject)eResolveProxy(oldDataSubject);
+			if (dataSubject != oldDataSubject) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__DATA_SUBJECT, oldDataSubject, dataSubject));
+			}
+		}
+		return dataSubject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataSubject basicGetDataSubject() {
+		return dataSubject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDataSubject(DataSubject newDataSubject) {
+		DataSubject oldDataSubject = dataSubject;
+		dataSubject = newDataSubject;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__DATA_SUBJECT, oldDataSubject, dataSubject));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<PersonalDataRequirement> getPersonalData() {
+		if (personalData == null) {
+			personalData = new EObjectResolvingEList<PersonalDataRequirement>(PersonalDataRequirement.class, this, pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PERSONAL_DATA);
+		}
+		return personalData;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PROCESS:
+				if (resolve) return getProcess();
+				return basicGetProcess();
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__DATA_SUBJECT:
+				if (resolve) return getDataSubject();
+				return basicGetDataSubject();
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PERSONAL_DATA:
+				return getPersonalData();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PROCESS:
+				setProcess((ProcessRequirement)newValue);
+				return;
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__DATA_SUBJECT:
+				setDataSubject((DataSubject)newValue);
+				return;
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PERSONAL_DATA:
+				getPersonalData().clear();
+				getPersonalData().addAll((Collection<? extends PersonalDataRequirement>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PROCESS:
+				setProcess((ProcessRequirement)null);
+				return;
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__DATA_SUBJECT:
+				setDataSubject((DataSubject)null);
+				return;
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PERSONAL_DATA:
+				getPersonalData().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PROCESS:
+				return process != null;
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__DATA_SUBJECT:
+				return dataSubject != null;
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE__PERSONAL_DATA:
+				return personalData != null && !personalData.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ProcessPrincipleImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/ProcessRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/ProcessRequirementImpl.java
new file mode 100644
index 0000000..9bf87cf
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/ProcessRequirementImpl.java
@@ -0,0 +1,149 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.impl.ProcessImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Process Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessRequirementImpl#getRequester <em>Requester</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ProcessRequirementImpl extends ProcessImpl implements ProcessRequirement {
+	/**
+	 * The cached value of the '{@link #getRequester() <em>Requester</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRequester()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Stakeholder> requester;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ProcessRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.PROCESS_REQUIREMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Stakeholder> getRequester() {
+		if (requester == null) {
+			requester = new EObjectResolvingEList<Stakeholder>(Stakeholder.class, this, pdp4engReqGDPRPackage.PROCESS_REQUIREMENT__REQUESTER);
+		}
+		return requester;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PROCESS_REQUIREMENT__REQUESTER:
+				return getRequester();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PROCESS_REQUIREMENT__REQUESTER:
+				getRequester().clear();
+				getRequester().addAll((Collection<? extends Stakeholder>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PROCESS_REQUIREMENT__REQUESTER:
+				getRequester().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PROCESS_REQUIREMENT__REQUESTER:
+				return requester != null && !requester.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ProcessRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PseudonimityRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PseudonimityRequirementImpl.java
new file mode 100644
index 0000000..b873bc5
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PseudonimityRequirementImpl.java
@@ -0,0 +1,179 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pseudonimity Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PseudonimityRequirementImpl#getKind <em>Kind</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PseudonimityRequirementImpl extends PrivacyRequirementImpl implements PseudonimityRequirement {
+	/**
+	 * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final PseudonymKind KIND_EDEFAULT = PseudonymKind.PERSON;
+
+	/**
+	 * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected PseudonymKind kind = KIND_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PseudonimityRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.PSEUDONIMITY_REQUIREMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PseudonymKind getKind() {
+		return kind;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setKind(PseudonymKind newKind) {
+		PseudonymKind oldKind = kind;
+		kind = newKind == null ? KIND_EDEFAULT : newKind;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PSEUDONIMITY_REQUIREMENT__KIND, oldKind, kind));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PSEUDONIMITY_REQUIREMENT__KIND:
+				return getKind();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PSEUDONIMITY_REQUIREMENT__KIND:
+				setKind((PseudonymKind)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PSEUDONIMITY_REQUIREMENT__KIND:
+				setKind(KIND_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PSEUDONIMITY_REQUIREMENT__KIND:
+				return kind != KIND_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (kind: ");
+		result.append(kind);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PseudonimityRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PurposeLimitationImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PurposeLimitationImpl.java
new file mode 100644
index 0000000..17bab0f
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PurposeLimitationImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Purpose Limitation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class PurposeLimitationImpl extends PurposePersonalDataPrincipleImpl implements PurposeLimitation {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PurposeLimitationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.PURPOSE_LIMITATION;
+	}
+
+} //PurposeLimitationImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PurposePersonalDataPrincipleImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PurposePersonalDataPrincipleImpl.java
new file mode 100644
index 0000000..b136b04
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/PurposePersonalDataPrincipleImpl.java
@@ -0,0 +1,236 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Purpose;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Purpose Personal Data Principle</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposePersonalDataPrincipleImpl#getPurpose <em>Purpose</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposePersonalDataPrincipleImpl#getPersonalData <em>Personal Data</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PurposePersonalDataPrincipleImpl extends GDPRPrincipleImpl implements PurposePersonalDataPrinciple {
+	/**
+	 * The cached value of the '{@link #getPurpose() <em>Purpose</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPurpose()
+	 * @generated
+	 * @ordered
+	 */
+	protected Purpose purpose;
+
+	/**
+	 * The cached value of the '{@link #getPersonalData() <em>Personal Data</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPersonalData()
+	 * @generated
+	 * @ordered
+	 */
+	protected PersonalData personalData;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PurposePersonalDataPrincipleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.PURPOSE_PERSONAL_DATA_PRINCIPLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Purpose getPurpose() {
+		if (purpose != null && purpose.eIsProxy()) {
+			InternalEObject oldPurpose = (InternalEObject)purpose;
+			purpose = (Purpose)eResolveProxy(oldPurpose);
+			if (purpose != oldPurpose) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE, oldPurpose, purpose));
+			}
+		}
+		return purpose;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Purpose basicGetPurpose() {
+		return purpose;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setPurpose(Purpose newPurpose) {
+		Purpose oldPurpose = purpose;
+		purpose = newPurpose;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE, oldPurpose, purpose));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PersonalData getPersonalData() {
+		if (personalData != null && personalData.eIsProxy()) {
+			InternalEObject oldPersonalData = (InternalEObject)personalData;
+			personalData = (PersonalData)eResolveProxy(oldPersonalData);
+			if (personalData != oldPersonalData) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA, oldPersonalData, personalData));
+			}
+		}
+		return personalData;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PersonalData basicGetPersonalData() {
+		return personalData;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setPersonalData(PersonalData newPersonalData) {
+		PersonalData oldPersonalData = personalData;
+		personalData = newPersonalData;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA, oldPersonalData, personalData));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE:
+				if (resolve) return getPurpose();
+				return basicGetPurpose();
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA:
+				if (resolve) return getPersonalData();
+				return basicGetPersonalData();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE:
+				setPurpose((Purpose)newValue);
+				return;
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA:
+				setPersonalData((PersonalData)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE:
+				setPurpose((Purpose)null);
+				return;
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA:
+				setPersonalData((PersonalData)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE:
+				return purpose != null;
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA:
+				return personalData != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //PurposePersonalDataPrincipleImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/RelatedToImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/RelatedToImpl.java
new file mode 100644
index 0000000..91a8546
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/RelatedToImpl.java
@@ -0,0 +1,358 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Related To</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.RelatedToImpl#isSensitive <em>Sensitive</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.RelatedToImpl#getLinkability <em>Linkability</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.RelatedToImpl#getCollection <em>Collection</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.RelatedToImpl#getBase_Element <em>Base Element</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RelatedToImpl extends MinimalEObjectImpl.Container implements RelatedTo {
+	/**
+	 * The default value of the '{@link #isSensitive() <em>Sensitive</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSensitive()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SENSITIVE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSensitive() <em>Sensitive</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSensitive()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean sensitive = SENSITIVE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLinkability() <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkability()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Linkability LINKABILITY_EDEFAULT = Linkability.SINGLE;
+
+	/**
+	 * The cached value of the '{@link #getLinkability() <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkability()
+	 * @generated
+	 * @ordered
+	 */
+	protected Linkability linkability = LINKABILITY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCollection() <em>Collection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final CollectionMethod COLLECTION_EDEFAULT = CollectionMethod.DIRECT;
+
+	/**
+	 * The cached value of the '{@link #getCollection() <em>Collection</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollection()
+	 * @generated
+	 * @ordered
+	 */
+	protected CollectionMethod collection = COLLECTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Element() <em>Base Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Element()
+	 * @generated
+	 * @ordered
+	 */
+	protected Element base_Element;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RelatedToImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.RELATED_TO;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isSensitive() {
+		return sensitive;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setSensitive(boolean newSensitive) {
+		boolean oldSensitive = sensitive;
+		sensitive = newSensitive;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.RELATED_TO__SENSITIVE, oldSensitive, sensitive));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Linkability getLinkability() {
+		return linkability;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setLinkability(Linkability newLinkability) {
+		Linkability oldLinkability = linkability;
+		linkability = newLinkability == null ? LINKABILITY_EDEFAULT : newLinkability;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.RELATED_TO__LINKABILITY, oldLinkability, linkability));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public CollectionMethod getCollection() {
+		return collection;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setCollection(CollectionMethod newCollection) {
+		CollectionMethod oldCollection = collection;
+		collection = newCollection == null ? COLLECTION_EDEFAULT : newCollection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.RELATED_TO__COLLECTION, oldCollection, collection));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Element getBase_Element() {
+		if (base_Element != null && base_Element.eIsProxy()) {
+			InternalEObject oldBase_Element = (InternalEObject)base_Element;
+			base_Element = (Element)eResolveProxy(oldBase_Element);
+			if (base_Element != oldBase_Element) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.RELATED_TO__BASE_ELEMENT, oldBase_Element, base_Element));
+			}
+		}
+		return base_Element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Element basicGetBase_Element() {
+		return base_Element;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_Element(Element newBase_Element) {
+		Element oldBase_Element = base_Element;
+		base_Element = newBase_Element;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.RELATED_TO__BASE_ELEMENT, oldBase_Element, base_Element));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.RELATED_TO__SENSITIVE:
+				return isSensitive();
+			case pdp4engReqGDPRPackage.RELATED_TO__LINKABILITY:
+				return getLinkability();
+			case pdp4engReqGDPRPackage.RELATED_TO__COLLECTION:
+				return getCollection();
+			case pdp4engReqGDPRPackage.RELATED_TO__BASE_ELEMENT:
+				if (resolve) return getBase_Element();
+				return basicGetBase_Element();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.RELATED_TO__SENSITIVE:
+				setSensitive((Boolean)newValue);
+				return;
+			case pdp4engReqGDPRPackage.RELATED_TO__LINKABILITY:
+				setLinkability((Linkability)newValue);
+				return;
+			case pdp4engReqGDPRPackage.RELATED_TO__COLLECTION:
+				setCollection((CollectionMethod)newValue);
+				return;
+			case pdp4engReqGDPRPackage.RELATED_TO__BASE_ELEMENT:
+				setBase_Element((Element)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.RELATED_TO__SENSITIVE:
+				setSensitive(SENSITIVE_EDEFAULT);
+				return;
+			case pdp4engReqGDPRPackage.RELATED_TO__LINKABILITY:
+				setLinkability(LINKABILITY_EDEFAULT);
+				return;
+			case pdp4engReqGDPRPackage.RELATED_TO__COLLECTION:
+				setCollection(COLLECTION_EDEFAULT);
+				return;
+			case pdp4engReqGDPRPackage.RELATED_TO__BASE_ELEMENT:
+				setBase_Element((Element)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.RELATED_TO__SENSITIVE:
+				return sensitive != SENSITIVE_EDEFAULT;
+			case pdp4engReqGDPRPackage.RELATED_TO__LINKABILITY:
+				return linkability != LINKABILITY_EDEFAULT;
+			case pdp4engReqGDPRPackage.RELATED_TO__COLLECTION:
+				return collection != COLLECTION_EDEFAULT;
+			case pdp4engReqGDPRPackage.RELATED_TO__BASE_ELEMENT:
+				return base_Element != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (sensitive: ");
+		result.append(sensitive);
+		result.append(", linkability: ");
+		result.append(linkability);
+		result.append(", collection: ");
+		result.append(collection);
+		result.append(')');
+		return result.toString();
+	}
+
+} //RelatedToImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/SecuritySafetyImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/SecuritySafetyImpl.java
new file mode 100644
index 0000000..5d3a427
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/SecuritySafetyImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Security Safety</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SecuritySafetyImpl extends ProcessPrincipleImpl implements SecuritySafety {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SecuritySafetyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.SECURITY_SAFETY;
+	}
+
+} //SecuritySafetyImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/StakeholderImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/StakeholderImpl.java
new file mode 100644
index 0000000..273c14a
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/StakeholderImpl.java
@@ -0,0 +1,174 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.uml.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stakeholder</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.StakeholderImpl#getBase_NamedElement <em>Base Named Element</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StakeholderImpl extends MinimalEObjectImpl.Container implements Stakeholder {
+	/**
+	 * The cached value of the '{@link #getBase_NamedElement() <em>Base Named Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_NamedElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected NamedElement base_NamedElement;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected StakeholderImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.STAKEHOLDER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NamedElement getBase_NamedElement() {
+		if (base_NamedElement != null && base_NamedElement.eIsProxy()) {
+			InternalEObject oldBase_NamedElement = (InternalEObject)base_NamedElement;
+			base_NamedElement = (NamedElement)eResolveProxy(oldBase_NamedElement);
+			if (base_NamedElement != oldBase_NamedElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, pdp4engReqGDPRPackage.STAKEHOLDER__BASE_NAMED_ELEMENT, oldBase_NamedElement, base_NamedElement));
+			}
+		}
+		return base_NamedElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamedElement basicGetBase_NamedElement() {
+		return base_NamedElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setBase_NamedElement(NamedElement newBase_NamedElement) {
+		NamedElement oldBase_NamedElement = base_NamedElement;
+		base_NamedElement = newBase_NamedElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.STAKEHOLDER__BASE_NAMED_ELEMENT, oldBase_NamedElement, base_NamedElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.STAKEHOLDER__BASE_NAMED_ELEMENT:
+				if (resolve) return getBase_NamedElement();
+				return basicGetBase_NamedElement();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.STAKEHOLDER__BASE_NAMED_ELEMENT:
+				setBase_NamedElement((NamedElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.STAKEHOLDER__BASE_NAMED_ELEMENT:
+				setBase_NamedElement((NamedElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.STAKEHOLDER__BASE_NAMED_ELEMENT:
+				return base_NamedElement != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //StakeholderImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/StorageLimitationImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/StorageLimitationImpl.java
new file mode 100644
index 0000000..ee9a997
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/StorageLimitationImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Storage Limitation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class StorageLimitationImpl extends PurposePersonalDataPrincipleImpl implements StorageLimitation {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected StorageLimitationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.STORAGE_LIMITATION;
+	}
+
+} //StorageLimitationImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/TransparencyImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/TransparencyImpl.java
new file mode 100644
index 0000000..183e668
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/TransparencyImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transparency</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class TransparencyImpl extends ProcessPrincipleImpl implements Transparency {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TransparencyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.TRANSPARENCY;
+	}
+
+} //TransparencyImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/UndectabilityRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/UndectabilityRequirementImpl.java
new file mode 100644
index 0000000..fc1e659
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/UndectabilityRequirementImpl.java
@@ -0,0 +1,51 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UndectabilityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Undectability Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class UndectabilityRequirementImpl extends PrivacyRequirementImpl implements UndectabilityRequirement {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UndectabilityRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.UNDECTABILITY_REQUIREMENT;
+	}
+
+} //UndectabilityRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/UnlinkabilityRequirementImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/UnlinkabilityRequirementImpl.java
new file mode 100644
index 0000000..14ad81a
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/UnlinkabilityRequirementImpl.java
@@ -0,0 +1,179 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Unlinkability Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.UnlinkabilityRequirementImpl#getLinkability <em>Linkability</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class UnlinkabilityRequirementImpl extends PrivacyRequirementImpl implements UnlinkabilityRequirement {
+	/**
+	 * The default value of the '{@link #getLinkability() <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkability()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Linkability LINKABILITY_EDEFAULT = Linkability.SINGLE;
+
+	/**
+	 * The cached value of the '{@link #getLinkability() <em>Linkability</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkability()
+	 * @generated
+	 * @ordered
+	 */
+	protected Linkability linkability = LINKABILITY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UnlinkabilityRequirementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return pdp4engReqGDPRPackage.Literals.UNLINKABILITY_REQUIREMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Linkability getLinkability() {
+		return linkability;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setLinkability(Linkability newLinkability) {
+		Linkability oldLinkability = linkability;
+		linkability = newLinkability == null ? LINKABILITY_EDEFAULT : newLinkability;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, pdp4engReqGDPRPackage.UNLINKABILITY_REQUIREMENT__LINKABILITY, oldLinkability, linkability));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.UNLINKABILITY_REQUIREMENT__LINKABILITY:
+				return getLinkability();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.UNLINKABILITY_REQUIREMENT__LINKABILITY:
+				setLinkability((Linkability)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.UNLINKABILITY_REQUIREMENT__LINKABILITY:
+				setLinkability(LINKABILITY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case pdp4engReqGDPRPackage.UNLINKABILITY_REQUIREMENT__LINKABILITY:
+				return linkability != LINKABILITY_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (linkability: ");
+		result.append(linkability);
+		result.append(')');
+		return result.toString();
+	}
+
+} //UnlinkabilityRequirementImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/pdp4engReqGDPRFactoryImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/pdp4engReqGDPRFactoryImpl.java
new file mode 100644
index 0000000..2241567
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/pdp4engReqGDPRFactoryImpl.java
@@ -0,0 +1,750 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class pdp4engReqGDPRFactoryImpl extends EFactoryImpl implements pdp4engReqGDPRFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static pdp4engReqGDPRFactory init() {
+		try {
+			pdp4engReqGDPRFactory thepdp4engReqGDPRFactory = (pdp4engReqGDPRFactory)EPackage.Registry.INSTANCE.getEFactory(pdp4engReqGDPRPackage.eNS_URI);
+			if (thepdp4engReqGDPRFactory != null) {
+				return thepdp4engReqGDPRFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new pdp4engReqGDPRFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public pdp4engReqGDPRFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case pdp4engReqGDPRPackage.PROCESS_REQUIREMENT: return createProcessRequirement();
+			case pdp4engReqGDPRPackage.STAKEHOLDER: return createStakeholder();
+			case pdp4engReqGDPRPackage.PERSONAL_DATA_REQUIREMENT: return createPersonalDataRequirement();
+			case pdp4engReqGDPRPackage.GDPR_PRINCIPLE: return createGDPRPrinciple();
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE: return createProcessPrinciple();
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE: return createPurposePersonalDataPrinciple();
+			case pdp4engReqGDPRPackage.DATA_MINIMISATION: return createDataMinimisation();
+			case pdp4engReqGDPRPackage.PURPOSE_LIMITATION: return createPurposeLimitation();
+			case pdp4engReqGDPRPackage.ACCURACY: return createAccuracy();
+			case pdp4engReqGDPRPackage.STORAGE_LIMITATION: return createStorageLimitation();
+			case pdp4engReqGDPRPackage.LAWFUL: return createLawful();
+			case pdp4engReqGDPRPackage.FAIRLY: return createFairly();
+			case pdp4engReqGDPRPackage.TRANSPARENCY: return createTransparency();
+			case pdp4engReqGDPRPackage.SECURITY_SAFETY: return createSecuritySafety();
+			case pdp4engReqGDPRPackage.RELATED_TO: return createRelatedTo();
+			case pdp4engReqGDPRPackage.AVAILABLE_AT: return createAvailableAt();
+			case pdp4engReqGDPRPackage.DERIVED_FROM: return createDerivedFrom();
+			case pdp4engReqGDPRPackage.DATA_REQUIREMENT: return createDataRequirement();
+			case pdp4engReqGDPRPackage.LINKABLE: return createLinkable();
+			case pdp4engReqGDPRPackage.GENERATED_REQUIREMENTS: return createGeneratedRequirements();
+			case pdp4engReqGDPRPackage.DATA_FLOW_REQUIREMENT: return createDataFlowRequirement();
+			case pdp4engReqGDPRPackage.DATA_SUBJECTS: return createDataSubjects();
+			case pdp4engReqGDPRPackage.DATA_REQUIREMENTS: return createDataRequirements();
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION: return createAvailableInformation();
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION: return createPersonalInformation();
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION_CONTAINER: return createAvailableInformationContainer();
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION_CONTAINER: return createPersonalInformationContainer();
+			case pdp4engReqGDPRPackage.UNLINKABILITY_REQUIREMENT: return createUnlinkabilityRequirement();
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT: return createPrivacyRequirement();
+			case pdp4engReqGDPRPackage.DATA_UNLINKABILITY_REQUIREMENT: return createDataUnlinkabilityRequirement();
+			case pdp4engReqGDPRPackage.CONTROLERS: return createControlers();
+			case pdp4engReqGDPRPackage.LINK: return createLink();
+			case pdp4engReqGDPRPackage.UNDECTABILITY_REQUIREMENT: return createUndectabilityRequirement();
+			case pdp4engReqGDPRPackage.PSEUDONIMITY_REQUIREMENT: return createPseudonimityRequirement();
+			case pdp4engReqGDPRPackage.ANANOMITY_REQUIREMENT: return createAnanomityRequirement();
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT: return createDataRecordRequirement();
+			case pdp4engReqGDPRPackage.FUNCTIONAL_REQUIREMENTS: return createFunctionalRequirements();
+			case pdp4engReqGDPRPackage.NON_FUNCTIONAL_REQUIREMENTS: return createNonFunctionalRequirements();
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONSENT: return createLawfulByConsent();
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONTRACT: return createLawfulByContract();
+			case pdp4engReqGDPRPackage.LAWFUL_BY_PUBLIC_INTEREST: return createLawfulByPublicInterest();
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGITIMATE_INTEREST: return createLawfulByLegitimateInterest();
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGAL_OBLIGATION: return createLawfulByLegalObligation();
+			case pdp4engReqGDPRPackage.LAWFUL_BY_VITAL_INTEREST: return createLawfulByVitalInterest();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case pdp4engReqGDPRPackage.LINKABILITY:
+				return createLinkabilityFromString(eDataType, initialValue);
+			case pdp4engReqGDPRPackage.COLLECTION_METHOD:
+				return createCollectionMethodFromString(eDataType, initialValue);
+			case pdp4engReqGDPRPackage.DURATION:
+				return createDurationFromString(eDataType, initialValue);
+			case pdp4engReqGDPRPackage.PSEUDONYM_KIND:
+				return createPseudonymKindFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case pdp4engReqGDPRPackage.LINKABILITY:
+				return convertLinkabilityToString(eDataType, instanceValue);
+			case pdp4engReqGDPRPackage.COLLECTION_METHOD:
+				return convertCollectionMethodToString(eDataType, instanceValue);
+			case pdp4engReqGDPRPackage.DURATION:
+				return convertDurationToString(eDataType, instanceValue);
+			case pdp4engReqGDPRPackage.PSEUDONYM_KIND:
+				return convertPseudonymKindToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ProcessRequirement createProcessRequirement() {
+		ProcessRequirementImpl processRequirement = new ProcessRequirementImpl();
+		return processRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Stakeholder createStakeholder() {
+		StakeholderImpl stakeholder = new StakeholderImpl();
+		return stakeholder;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PersonalDataRequirement createPersonalDataRequirement() {
+		PersonalDataRequirementImpl personalDataRequirement = new PersonalDataRequirementImpl();
+		return personalDataRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GDPRPrinciple createGDPRPrinciple() {
+		GDPRPrincipleImpl gdprPrinciple = new GDPRPrincipleImpl();
+		return gdprPrinciple;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ProcessPrinciple createProcessPrinciple() {
+		ProcessPrincipleImpl processPrinciple = new ProcessPrincipleImpl();
+		return processPrinciple;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PurposePersonalDataPrinciple createPurposePersonalDataPrinciple() {
+		PurposePersonalDataPrincipleImpl purposePersonalDataPrinciple = new PurposePersonalDataPrincipleImpl();
+		return purposePersonalDataPrinciple;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataMinimisation createDataMinimisation() {
+		DataMinimisationImpl dataMinimisation = new DataMinimisationImpl();
+		return dataMinimisation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PurposeLimitation createPurposeLimitation() {
+		PurposeLimitationImpl purposeLimitation = new PurposeLimitationImpl();
+		return purposeLimitation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Accuracy createAccuracy() {
+		AccuracyImpl accuracy = new AccuracyImpl();
+		return accuracy;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public StorageLimitation createStorageLimitation() {
+		StorageLimitationImpl storageLimitation = new StorageLimitationImpl();
+		return storageLimitation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Lawful createLawful() {
+		LawfulImpl lawful = new LawfulImpl();
+		return lawful;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Fairly createFairly() {
+		FairlyImpl fairly = new FairlyImpl();
+		return fairly;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Transparency createTransparency() {
+		TransparencyImpl transparency = new TransparencyImpl();
+		return transparency;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public SecuritySafety createSecuritySafety() {
+		SecuritySafetyImpl securitySafety = new SecuritySafetyImpl();
+		return securitySafety;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public RelatedTo createRelatedTo() {
+		RelatedToImpl relatedTo = new RelatedToImpl();
+		return relatedTo;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public AvailableAt createAvailableAt() {
+		AvailableAtImpl availableAt = new AvailableAtImpl();
+		return availableAt;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DerivedFrom createDerivedFrom() {
+		DerivedFromImpl derivedFrom = new DerivedFromImpl();
+		return derivedFrom;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataRequirement createDataRequirement() {
+		DataRequirementImpl dataRequirement = new DataRequirementImpl();
+		return dataRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Linkable createLinkable() {
+		LinkableImpl linkable = new LinkableImpl();
+		return linkable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public GeneratedRequirements createGeneratedRequirements() {
+		GeneratedRequirementsImpl generatedRequirements = new GeneratedRequirementsImpl();
+		return generatedRequirements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataFlowRequirement createDataFlowRequirement() {
+		DataFlowRequirementImpl dataFlowRequirement = new DataFlowRequirementImpl();
+		return dataFlowRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataSubjects createDataSubjects() {
+		DataSubjectsImpl dataSubjects = new DataSubjectsImpl();
+		return dataSubjects;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataRequirements createDataRequirements() {
+		DataRequirementsImpl dataRequirements = new DataRequirementsImpl();
+		return dataRequirements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public AvailableInformation createAvailableInformation() {
+		AvailableInformationImpl availableInformation = new AvailableInformationImpl();
+		return availableInformation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PersonalInformation createPersonalInformation() {
+		PersonalInformationImpl personalInformation = new PersonalInformationImpl();
+		return personalInformation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public AvailableInformationContainer createAvailableInformationContainer() {
+		AvailableInformationContainerImpl availableInformationContainer = new AvailableInformationContainerImpl();
+		return availableInformationContainer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PersonalInformationContainer createPersonalInformationContainer() {
+		PersonalInformationContainerImpl personalInformationContainer = new PersonalInformationContainerImpl();
+		return personalInformationContainer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public UnlinkabilityRequirement createUnlinkabilityRequirement() {
+		UnlinkabilityRequirementImpl unlinkabilityRequirement = new UnlinkabilityRequirementImpl();
+		return unlinkabilityRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PrivacyRequirement createPrivacyRequirement() {
+		PrivacyRequirementImpl privacyRequirement = new PrivacyRequirementImpl();
+		return privacyRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataUnlinkabilityRequirement createDataUnlinkabilityRequirement() {
+		DataUnlinkabilityRequirementImpl dataUnlinkabilityRequirement = new DataUnlinkabilityRequirementImpl();
+		return dataUnlinkabilityRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Controlers createControlers() {
+		ControlersImpl controlers = new ControlersImpl();
+		return controlers;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Link createLink() {
+		LinkImpl link = new LinkImpl();
+		return link;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public UndectabilityRequirement createUndectabilityRequirement() {
+		UndectabilityRequirementImpl undectabilityRequirement = new UndectabilityRequirementImpl();
+		return undectabilityRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PseudonimityRequirement createPseudonimityRequirement() {
+		PseudonimityRequirementImpl pseudonimityRequirement = new PseudonimityRequirementImpl();
+		return pseudonimityRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public AnanomityRequirement createAnanomityRequirement() {
+		AnanomityRequirementImpl ananomityRequirement = new AnanomityRequirementImpl();
+		return ananomityRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public DataRecordRequirement createDataRecordRequirement() {
+		DataRecordRequirementImpl dataRecordRequirement = new DataRecordRequirementImpl();
+		return dataRecordRequirement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public FunctionalRequirements createFunctionalRequirements() {
+		FunctionalRequirementsImpl functionalRequirements = new FunctionalRequirementsImpl();
+		return functionalRequirements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NonFunctionalRequirements createNonFunctionalRequirements() {
+		NonFunctionalRequirementsImpl nonFunctionalRequirements = new NonFunctionalRequirementsImpl();
+		return nonFunctionalRequirements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public LawfulByConsent createLawfulByConsent() {
+		LawfulByConsentImpl lawfulByConsent = new LawfulByConsentImpl();
+		return lawfulByConsent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public LawfulByContract createLawfulByContract() {
+		LawfulByContractImpl lawfulByContract = new LawfulByContractImpl();
+		return lawfulByContract;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public LawfulByPublicInterest createLawfulByPublicInterest() {
+		LawfulByPublicInterestImpl lawfulByPublicInterest = new LawfulByPublicInterestImpl();
+		return lawfulByPublicInterest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public LawfulByLegitimateInterest createLawfulByLegitimateInterest() {
+		LawfulByLegitimateInterestImpl lawfulByLegitimateInterest = new LawfulByLegitimateInterestImpl();
+		return lawfulByLegitimateInterest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public LawfulByLegalObligation createLawfulByLegalObligation() {
+		LawfulByLegalObligationImpl lawfulByLegalObligation = new LawfulByLegalObligationImpl();
+		return lawfulByLegalObligation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public LawfulByVitalInterest createLawfulByVitalInterest() {
+		LawfulByVitalInterestImpl lawfulByVitalInterest = new LawfulByVitalInterestImpl();
+		return lawfulByVitalInterest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Linkability createLinkabilityFromString(EDataType eDataType, String initialValue) {
+		Linkability result = Linkability.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertLinkabilityToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CollectionMethod createCollectionMethodFromString(EDataType eDataType, String initialValue) {
+		CollectionMethod result = CollectionMethod.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertCollectionMethodToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Duration createDurationFromString(EDataType eDataType, String initialValue) {
+		Duration result = Duration.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertDurationToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PseudonymKind createPseudonymKindFromString(EDataType eDataType, String initialValue) {
+		PseudonymKind result = PseudonymKind.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertPseudonymKindToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public pdp4engReqGDPRPackage getpdp4engReqGDPRPackage() {
+		return (pdp4engReqGDPRPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static pdp4engReqGDPRPackage getPackage() {
+		return pdp4engReqGDPRPackage.eINSTANCE;
+	}
+
+} //pdp4engReqGDPRFactoryImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/pdp4engReqGDPRPackageImpl.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/pdp4engReqGDPRPackageImpl.java
new file mode 100644
index 0000000..03414e4
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/impl/pdp4engReqGDPRPackageImpl.java
@@ -0,0 +1,1863 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Pdp4engCommonGDPRPackage;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AnanomityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataUnlinkabilityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UndectabilityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRFactory;
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class pdp4engReqGDPRPackageImpl extends EPackageImpl implements pdp4engReqGDPRPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass processRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass stakeholderEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass personalDataRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass gdprPrincipleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass processPrincipleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass purposePersonalDataPrincipleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataMinimisationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass purposeLimitationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass accuracyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass storageLimitationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass lawfulEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass fairlyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass transparencyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass securitySafetyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass relatedToEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass availableAtEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass derivedFromEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass linkableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass generatedRequirementsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataFlowRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataSubjectsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataRequirementsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass availableInformationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass personalInformationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass availableInformationContainerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass personalInformationContainerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass unlinkabilityRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass privacyRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataUnlinkabilityRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass controlersEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass linkEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass undectabilityRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass pseudonimityRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ananomityRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataRecordRequirementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass functionalRequirementsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass nonFunctionalRequirementsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass lawfulByConsentEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass lawfulByContractEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass lawfulByPublicInterestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass lawfulByLegitimateInterestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass lawfulByLegalObligationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass lawfulByVitalInterestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum linkabilityEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum collectionMethodEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum durationEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum pseudonymKindEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private pdp4engReqGDPRPackageImpl() {
+		super(eNS_URI, pdp4engReqGDPRFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link pdp4engReqGDPRPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static pdp4engReqGDPRPackage init() {
+		if (isInited) return (pdp4engReqGDPRPackage)EPackage.Registry.INSTANCE.getEPackage(pdp4engReqGDPRPackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredpdp4engReqGDPRPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		pdp4engReqGDPRPackageImpl thepdp4engReqGDPRPackage = registeredpdp4engReqGDPRPackage instanceof pdp4engReqGDPRPackageImpl ? (pdp4engReqGDPRPackageImpl)registeredpdp4engReqGDPRPackage : new pdp4engReqGDPRPackageImpl();
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		Pdp4engCommonGDPRPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
+		UMLPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		thepdp4engReqGDPRPackage.createPackageContents();
+
+		// Initialize created meta-data
+		thepdp4engReqGDPRPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		thepdp4engReqGDPRPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(pdp4engReqGDPRPackage.eNS_URI, thepdp4engReqGDPRPackage);
+		return thepdp4engReqGDPRPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getProcessRequirement() {
+		return processRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getProcessRequirement_Requester() {
+		return (EReference)processRequirementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getStakeholder() {
+		return stakeholderEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getStakeholder_Base_NamedElement() {
+		return (EReference)stakeholderEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getPersonalDataRequirement() {
+		return personalDataRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPersonalDataRequirement_Source() {
+		return (EReference)personalDataRequirementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getGDPRPrinciple() {
+		return gdprPrincipleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getGDPRPrinciple_Base_NamedElement() {
+		return (EReference)gdprPrincipleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getProcessPrinciple() {
+		return processPrincipleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getProcessPrinciple_Process() {
+		return (EReference)processPrincipleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getProcessPrinciple_DataSubject() {
+		return (EReference)processPrincipleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getProcessPrinciple_PersonalData() {
+		return (EReference)processPrincipleEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getPurposePersonalDataPrinciple() {
+		return purposePersonalDataPrincipleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPurposePersonalDataPrinciple_Purpose() {
+		return (EReference)purposePersonalDataPrincipleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPurposePersonalDataPrinciple_PersonalData() {
+		return (EReference)purposePersonalDataPrincipleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getDataMinimisation() {
+		return dataMinimisationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getPurposeLimitation() {
+		return purposeLimitationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getAccuracy() {
+		return accuracyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getStorageLimitation() {
+		return storageLimitationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLawful() {
+		return lawfulEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getFairly() {
+		return fairlyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getTransparency() {
+		return transparencyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getSecuritySafety() {
+		return securitySafetyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getRelatedTo() {
+		return relatedToEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getRelatedTo_Sensitive() {
+		return (EAttribute)relatedToEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getRelatedTo_Linkability() {
+		return (EAttribute)relatedToEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getRelatedTo_Collection() {
+		return (EAttribute)relatedToEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getRelatedTo_Base_Element() {
+		return (EReference)relatedToEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getAvailableAt() {
+		return availableAtEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getAvailableAt_Duration() {
+		return (EAttribute)availableAtEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getAvailableAt_Base_Element() {
+		return (EReference)availableAtEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getDerivedFrom() {
+		return derivedFromEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getDerivedFrom_Base_Element() {
+		return (EReference)derivedFromEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getDataRequirement() {
+		return dataRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLinkable() {
+		return linkableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getLinkable_Duration() {
+		return (EAttribute)linkableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getLinkable_Linkability() {
+		return (EAttribute)linkableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getLinkable_Base_Element() {
+		return (EReference)linkableEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getGeneratedRequirements() {
+		return generatedRequirementsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getGeneratedRequirements_Base_Package() {
+		return (EReference)generatedRequirementsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getDataFlowRequirement() {
+		return dataFlowRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getDataFlowRequirement_Base_Activity() {
+		return (EReference)dataFlowRequirementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getDataSubjects() {
+		return dataSubjectsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getDataSubjects_Base_Package() {
+		return (EReference)dataSubjectsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getDataRequirements() {
+		return dataRequirementsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getDataRequirements_Base_Package() {
+		return (EReference)dataRequirementsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getAvailableInformation() {
+		return availableInformationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getAvailableInformation_Base_Package() {
+		return (EReference)availableInformationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getAvailableInformation_Concerns() {
+		return (EReference)availableInformationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getPersonalInformation() {
+		return personalInformationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPersonalInformation_Base_Package() {
+		return (EReference)personalInformationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPersonalInformation_Concerns() {
+		return (EReference)personalInformationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getAvailableInformationContainer() {
+		return availableInformationContainerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getAvailableInformationContainer_Base_Package() {
+		return (EReference)availableInformationContainerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getPersonalInformationContainer() {
+		return personalInformationContainerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPersonalInformationContainer_Base_Package() {
+		return (EReference)personalInformationContainerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getUnlinkabilityRequirement() {
+		return unlinkabilityRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getUnlinkabilityRequirement_Linkability() {
+		return (EAttribute)unlinkabilityRequirementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getPrivacyRequirement() {
+		return privacyRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPrivacyRequirement_Base_NamedElement() {
+		return (EReference)privacyRequirementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPrivacyRequirement_DataSubject() {
+		return (EReference)privacyRequirementEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPrivacyRequirement_Counterstakeholders() {
+		return (EReference)privacyRequirementEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getPrivacyRequirement_PersonalData() {
+		return (EReference)privacyRequirementEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getDataUnlinkabilityRequirement() {
+		return dataUnlinkabilityRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getDataUnlinkabilityRequirement_Links() {
+		return (EReference)dataUnlinkabilityRequirementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getControlers() {
+		return controlersEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getControlers_Base_Package() {
+		return (EReference)controlersEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLink() {
+		return linkEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getLink_Base_NamedElement() {
+		return (EReference)linkEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getLink_Linkability() {
+		return (EAttribute)linkEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getUndectabilityRequirement() {
+		return undectabilityRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getPseudonimityRequirement() {
+		return pseudonimityRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getPseudonimityRequirement_Kind() {
+		return (EAttribute)pseudonimityRequirementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getAnanomityRequirement() {
+		return ananomityRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getDataRecordRequirement() {
+		return dataRecordRequirementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getDataRecordRequirement_Base_DataStoreNode() {
+		return (EReference)dataRecordRequirementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getDataRecordRequirement_DataList() {
+		return (EReference)dataRecordRequirementEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getFunctionalRequirements() {
+		return functionalRequirementsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getFunctionalRequirements_Base_Package() {
+		return (EReference)functionalRequirementsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getNonFunctionalRequirements() {
+		return nonFunctionalRequirementsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getNonFunctionalRequirements_Base_Package() {
+		return (EReference)nonFunctionalRequirementsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLawfulByConsent() {
+		return lawfulByConsentEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getLawfulByConsent_Consent() {
+		return (EReference)lawfulByConsentEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLawfulByContract() {
+		return lawfulByContractEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getLawfulByContract_Contract() {
+		return (EReference)lawfulByContractEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLawfulByPublicInterest() {
+		return lawfulByPublicInterestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getLawfulByPublicInterest_PublicInterest() {
+		return (EReference)lawfulByPublicInterestEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLawfulByLegitimateInterest() {
+		return lawfulByLegitimateInterestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getLawfulByLegitimateInterest_LegitimateInterest() {
+		return (EReference)lawfulByLegitimateInterestEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLawfulByLegalObligation() {
+		return lawfulByLegalObligationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getLawfulByLegalObligation_LegalObligation() {
+		return (EReference)lawfulByLegalObligationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getLawfulByVitalInterest() {
+		return lawfulByVitalInterestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getLawfulByVitalInterest_VitalInterest() {
+		return (EReference)lawfulByVitalInterestEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EEnum getLinkability() {
+		return linkabilityEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EEnum getCollectionMethod() {
+		return collectionMethodEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EEnum getDuration() {
+		return durationEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EEnum getPseudonymKind() {
+		return pseudonymKindEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public pdp4engReqGDPRFactory getpdp4engReqGDPRFactory() {
+		return (pdp4engReqGDPRFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		processRequirementEClass = createEClass(PROCESS_REQUIREMENT);
+		createEReference(processRequirementEClass, PROCESS_REQUIREMENT__REQUESTER);
+
+		stakeholderEClass = createEClass(STAKEHOLDER);
+		createEReference(stakeholderEClass, STAKEHOLDER__BASE_NAMED_ELEMENT);
+
+		personalDataRequirementEClass = createEClass(PERSONAL_DATA_REQUIREMENT);
+		createEReference(personalDataRequirementEClass, PERSONAL_DATA_REQUIREMENT__SOURCE);
+
+		gdprPrincipleEClass = createEClass(GDPR_PRINCIPLE);
+		createEReference(gdprPrincipleEClass, GDPR_PRINCIPLE__BASE_NAMED_ELEMENT);
+
+		processPrincipleEClass = createEClass(PROCESS_PRINCIPLE);
+		createEReference(processPrincipleEClass, PROCESS_PRINCIPLE__PROCESS);
+		createEReference(processPrincipleEClass, PROCESS_PRINCIPLE__DATA_SUBJECT);
+		createEReference(processPrincipleEClass, PROCESS_PRINCIPLE__PERSONAL_DATA);
+
+		purposePersonalDataPrincipleEClass = createEClass(PURPOSE_PERSONAL_DATA_PRINCIPLE);
+		createEReference(purposePersonalDataPrincipleEClass, PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE);
+		createEReference(purposePersonalDataPrincipleEClass, PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA);
+
+		dataMinimisationEClass = createEClass(DATA_MINIMISATION);
+
+		purposeLimitationEClass = createEClass(PURPOSE_LIMITATION);
+
+		accuracyEClass = createEClass(ACCURACY);
+
+		storageLimitationEClass = createEClass(STORAGE_LIMITATION);
+
+		lawfulEClass = createEClass(LAWFUL);
+
+		fairlyEClass = createEClass(FAIRLY);
+
+		transparencyEClass = createEClass(TRANSPARENCY);
+
+		securitySafetyEClass = createEClass(SECURITY_SAFETY);
+
+		relatedToEClass = createEClass(RELATED_TO);
+		createEAttribute(relatedToEClass, RELATED_TO__SENSITIVE);
+		createEAttribute(relatedToEClass, RELATED_TO__LINKABILITY);
+		createEAttribute(relatedToEClass, RELATED_TO__COLLECTION);
+		createEReference(relatedToEClass, RELATED_TO__BASE_ELEMENT);
+
+		availableAtEClass = createEClass(AVAILABLE_AT);
+		createEAttribute(availableAtEClass, AVAILABLE_AT__DURATION);
+		createEReference(availableAtEClass, AVAILABLE_AT__BASE_ELEMENT);
+
+		derivedFromEClass = createEClass(DERIVED_FROM);
+		createEReference(derivedFromEClass, DERIVED_FROM__BASE_ELEMENT);
+
+		dataRequirementEClass = createEClass(DATA_REQUIREMENT);
+
+		linkableEClass = createEClass(LINKABLE);
+		createEAttribute(linkableEClass, LINKABLE__DURATION);
+		createEAttribute(linkableEClass, LINKABLE__LINKABILITY);
+		createEReference(linkableEClass, LINKABLE__BASE_ELEMENT);
+
+		generatedRequirementsEClass = createEClass(GENERATED_REQUIREMENTS);
+		createEReference(generatedRequirementsEClass, GENERATED_REQUIREMENTS__BASE_PACKAGE);
+
+		dataFlowRequirementEClass = createEClass(DATA_FLOW_REQUIREMENT);
+		createEReference(dataFlowRequirementEClass, DATA_FLOW_REQUIREMENT__BASE_ACTIVITY);
+
+		dataSubjectsEClass = createEClass(DATA_SUBJECTS);
+		createEReference(dataSubjectsEClass, DATA_SUBJECTS__BASE_PACKAGE);
+
+		dataRequirementsEClass = createEClass(DATA_REQUIREMENTS);
+		createEReference(dataRequirementsEClass, DATA_REQUIREMENTS__BASE_PACKAGE);
+
+		availableInformationEClass = createEClass(AVAILABLE_INFORMATION);
+		createEReference(availableInformationEClass, AVAILABLE_INFORMATION__BASE_PACKAGE);
+		createEReference(availableInformationEClass, AVAILABLE_INFORMATION__CONCERNS);
+
+		personalInformationEClass = createEClass(PERSONAL_INFORMATION);
+		createEReference(personalInformationEClass, PERSONAL_INFORMATION__BASE_PACKAGE);
+		createEReference(personalInformationEClass, PERSONAL_INFORMATION__CONCERNS);
+
+		availableInformationContainerEClass = createEClass(AVAILABLE_INFORMATION_CONTAINER);
+		createEReference(availableInformationContainerEClass, AVAILABLE_INFORMATION_CONTAINER__BASE_PACKAGE);
+
+		personalInformationContainerEClass = createEClass(PERSONAL_INFORMATION_CONTAINER);
+		createEReference(personalInformationContainerEClass, PERSONAL_INFORMATION_CONTAINER__BASE_PACKAGE);
+
+		unlinkabilityRequirementEClass = createEClass(UNLINKABILITY_REQUIREMENT);
+		createEAttribute(unlinkabilityRequirementEClass, UNLINKABILITY_REQUIREMENT__LINKABILITY);
+
+		privacyRequirementEClass = createEClass(PRIVACY_REQUIREMENT);
+		createEReference(privacyRequirementEClass, PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT);
+		createEReference(privacyRequirementEClass, PRIVACY_REQUIREMENT__DATA_SUBJECT);
+		createEReference(privacyRequirementEClass, PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS);
+		createEReference(privacyRequirementEClass, PRIVACY_REQUIREMENT__PERSONAL_DATA);
+
+		dataUnlinkabilityRequirementEClass = createEClass(DATA_UNLINKABILITY_REQUIREMENT);
+		createEReference(dataUnlinkabilityRequirementEClass, DATA_UNLINKABILITY_REQUIREMENT__LINKS);
+
+		controlersEClass = createEClass(CONTROLERS);
+		createEReference(controlersEClass, CONTROLERS__BASE_PACKAGE);
+
+		linkEClass = createEClass(LINK);
+		createEReference(linkEClass, LINK__BASE_NAMED_ELEMENT);
+		createEAttribute(linkEClass, LINK__LINKABILITY);
+
+		undectabilityRequirementEClass = createEClass(UNDECTABILITY_REQUIREMENT);
+
+		pseudonimityRequirementEClass = createEClass(PSEUDONIMITY_REQUIREMENT);
+		createEAttribute(pseudonimityRequirementEClass, PSEUDONIMITY_REQUIREMENT__KIND);
+
+		ananomityRequirementEClass = createEClass(ANANOMITY_REQUIREMENT);
+
+		dataRecordRequirementEClass = createEClass(DATA_RECORD_REQUIREMENT);
+		createEReference(dataRecordRequirementEClass, DATA_RECORD_REQUIREMENT__BASE_DATA_STORE_NODE);
+		createEReference(dataRecordRequirementEClass, DATA_RECORD_REQUIREMENT__DATA_LIST);
+
+		functionalRequirementsEClass = createEClass(FUNCTIONAL_REQUIREMENTS);
+		createEReference(functionalRequirementsEClass, FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE);
+
+		nonFunctionalRequirementsEClass = createEClass(NON_FUNCTIONAL_REQUIREMENTS);
+		createEReference(nonFunctionalRequirementsEClass, NON_FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE);
+
+		lawfulByConsentEClass = createEClass(LAWFUL_BY_CONSENT);
+		createEReference(lawfulByConsentEClass, LAWFUL_BY_CONSENT__CONSENT);
+
+		lawfulByContractEClass = createEClass(LAWFUL_BY_CONTRACT);
+		createEReference(lawfulByContractEClass, LAWFUL_BY_CONTRACT__CONTRACT);
+
+		lawfulByPublicInterestEClass = createEClass(LAWFUL_BY_PUBLIC_INTEREST);
+		createEReference(lawfulByPublicInterestEClass, LAWFUL_BY_PUBLIC_INTEREST__PUBLIC_INTEREST);
+
+		lawfulByLegitimateInterestEClass = createEClass(LAWFUL_BY_LEGITIMATE_INTEREST);
+		createEReference(lawfulByLegitimateInterestEClass, LAWFUL_BY_LEGITIMATE_INTEREST__LEGITIMATE_INTEREST);
+
+		lawfulByLegalObligationEClass = createEClass(LAWFUL_BY_LEGAL_OBLIGATION);
+		createEReference(lawfulByLegalObligationEClass, LAWFUL_BY_LEGAL_OBLIGATION__LEGAL_OBLIGATION);
+
+		lawfulByVitalInterestEClass = createEClass(LAWFUL_BY_VITAL_INTEREST);
+		createEReference(lawfulByVitalInterestEClass, LAWFUL_BY_VITAL_INTEREST__VITAL_INTEREST);
+
+		// Create enums
+		linkabilityEEnum = createEEnum(LINKABILITY);
+		collectionMethodEEnum = createEEnum(COLLECTION_METHOD);
+		durationEEnum = createEEnum(DURATION);
+		pseudonymKindEEnum = createEEnum(PSEUDONYM_KIND);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		Pdp4engCommonGDPRPackage thePdp4engCommonGDPRPackage = (Pdp4engCommonGDPRPackage)EPackage.Registry.INSTANCE.getEPackage(Pdp4engCommonGDPRPackage.eNS_URI);
+		UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+		TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		processRequirementEClass.getESuperTypes().add(thePdp4engCommonGDPRPackage.getProcess());
+		personalDataRequirementEClass.getESuperTypes().add(thePdp4engCommonGDPRPackage.getPersonalData());
+		processPrincipleEClass.getESuperTypes().add(this.getGDPRPrinciple());
+		purposePersonalDataPrincipleEClass.getESuperTypes().add(this.getGDPRPrinciple());
+		dataMinimisationEClass.getESuperTypes().add(this.getPurposePersonalDataPrinciple());
+		purposeLimitationEClass.getESuperTypes().add(this.getPurposePersonalDataPrinciple());
+		accuracyEClass.getESuperTypes().add(this.getPurposePersonalDataPrinciple());
+		storageLimitationEClass.getESuperTypes().add(this.getPurposePersonalDataPrinciple());
+		lawfulEClass.getESuperTypes().add(this.getProcessPrinciple());
+		fairlyEClass.getESuperTypes().add(this.getProcessPrinciple());
+		transparencyEClass.getESuperTypes().add(this.getProcessPrinciple());
+		securitySafetyEClass.getESuperTypes().add(this.getProcessPrinciple());
+		dataRequirementEClass.getESuperTypes().add(thePdp4engCommonGDPRPackage.getData());
+		unlinkabilityRequirementEClass.getESuperTypes().add(this.getPrivacyRequirement());
+		dataUnlinkabilityRequirementEClass.getESuperTypes().add(this.getUnlinkabilityRequirement());
+		undectabilityRequirementEClass.getESuperTypes().add(this.getPrivacyRequirement());
+		pseudonimityRequirementEClass.getESuperTypes().add(this.getPrivacyRequirement());
+		ananomityRequirementEClass.getESuperTypes().add(this.getUnlinkabilityRequirement());
+		lawfulByConsentEClass.getESuperTypes().add(this.getLawful());
+		lawfulByContractEClass.getESuperTypes().add(this.getLawful());
+		lawfulByPublicInterestEClass.getESuperTypes().add(this.getLawful());
+		lawfulByLegitimateInterestEClass.getESuperTypes().add(this.getLawful());
+		lawfulByLegalObligationEClass.getESuperTypes().add(this.getLawful());
+		lawfulByVitalInterestEClass.getESuperTypes().add(this.getLawful());
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(processRequirementEClass, ProcessRequirement.class, "ProcessRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getProcessRequirement_Requester(), this.getStakeholder(), null, "requester", null, 0, -1, ProcessRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(stakeholderEClass, Stakeholder.class, "Stakeholder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getStakeholder_Base_NamedElement(), theUMLPackage.getNamedElement(), null, "base_NamedElement", null, 0, 1, Stakeholder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(personalDataRequirementEClass, PersonalDataRequirement.class, "PersonalDataRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getPersonalDataRequirement_Source(), theUMLPackage.getElement(), null, "source", null, 1, 1, PersonalDataRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(gdprPrincipleEClass, GDPRPrinciple.class, "GDPRPrinciple", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getGDPRPrinciple_Base_NamedElement(), theUMLPackage.getNamedElement(), null, "base_NamedElement", null, 0, 1, GDPRPrinciple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(processPrincipleEClass, ProcessPrinciple.class, "ProcessPrinciple", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getProcessPrinciple_Process(), this.getProcessRequirement(), null, "process", null, 1, 1, ProcessPrinciple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getProcessPrinciple_DataSubject(), thePdp4engCommonGDPRPackage.getDataSubject(), null, "dataSubject", null, 1, 1, ProcessPrinciple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getProcessPrinciple_PersonalData(), this.getPersonalDataRequirement(), null, "personalData", null, 1, -1, ProcessPrinciple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(purposePersonalDataPrincipleEClass, PurposePersonalDataPrinciple.class, "PurposePersonalDataPrinciple", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getPurposePersonalDataPrinciple_Purpose(), thePdp4engCommonGDPRPackage.getPurpose(), null, "purpose", null, 1, 1, PurposePersonalDataPrinciple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getPurposePersonalDataPrinciple_PersonalData(), thePdp4engCommonGDPRPackage.getPersonalData(), null, "personalData", null, 1, 1, PurposePersonalDataPrinciple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(dataMinimisationEClass, DataMinimisation.class, "DataMinimisation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(purposeLimitationEClass, PurposeLimitation.class, "PurposeLimitation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(accuracyEClass, Accuracy.class, "Accuracy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(storageLimitationEClass, StorageLimitation.class, "StorageLimitation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(lawfulEClass, Lawful.class, "Lawful", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(fairlyEClass, Fairly.class, "Fairly", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(transparencyEClass, Transparency.class, "Transparency", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(securitySafetyEClass, SecuritySafety.class, "SecuritySafety", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(relatedToEClass, RelatedTo.class, "RelatedTo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getRelatedTo_Sensitive(), theTypesPackage.getBoolean(), "sensitive", null, 1, 1, RelatedTo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getRelatedTo_Linkability(), this.getLinkability(), "linkability", null, 1, 1, RelatedTo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getRelatedTo_Collection(), this.getCollectionMethod(), "collection", null, 1, 1, RelatedTo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getRelatedTo_Base_Element(), theUMLPackage.getElement(), null, "base_Element", null, 0, 1, RelatedTo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(availableAtEClass, AvailableAt.class, "AvailableAt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getAvailableAt_Duration(), this.getDuration(), "duration", null, 1, 1, AvailableAt.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getAvailableAt_Base_Element(), theUMLPackage.getElement(), null, "base_Element", null, 0, 1, AvailableAt.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(derivedFromEClass, DerivedFrom.class, "DerivedFrom", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDerivedFrom_Base_Element(), theUMLPackage.getElement(), null, "base_Element", null, 0, 1, DerivedFrom.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(dataRequirementEClass, DataRequirement.class, "DataRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(linkableEClass, Linkable.class, "Linkable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getLinkable_Duration(), this.getDuration(), "duration", null, 1, 1, Linkable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getLinkable_Linkability(), this.getLinkability(), "linkability", null, 1, 1, Linkable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getLinkable_Base_Element(), theUMLPackage.getElement(), null, "base_Element", null, 0, 1, Linkable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(generatedRequirementsEClass, GeneratedRequirements.class, "GeneratedRequirements", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getGeneratedRequirements_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, GeneratedRequirements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(dataFlowRequirementEClass, DataFlowRequirement.class, "DataFlowRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataFlowRequirement_Base_Activity(), theUMLPackage.getActivity(), null, "base_Activity", null, 0, 1, DataFlowRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(dataSubjectsEClass, DataSubjects.class, "DataSubjects", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataSubjects_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, DataSubjects.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(dataRequirementsEClass, DataRequirements.class, "DataRequirements", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataRequirements_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, DataRequirements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(availableInformationEClass, AvailableInformation.class, "AvailableInformation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getAvailableInformation_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, AvailableInformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getAvailableInformation_Concerns(), theUMLPackage.getNamedElement(), null, "concerns", null, 1, 1, AvailableInformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(personalInformationEClass, PersonalInformation.class, "PersonalInformation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getPersonalInformation_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, PersonalInformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getPersonalInformation_Concerns(), thePdp4engCommonGDPRPackage.getDataSubject(), null, "concerns", null, 1, 1, PersonalInformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(availableInformationContainerEClass, AvailableInformationContainer.class, "AvailableInformationContainer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getAvailableInformationContainer_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, AvailableInformationContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(personalInformationContainerEClass, PersonalInformationContainer.class, "PersonalInformationContainer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getPersonalInformationContainer_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, PersonalInformationContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(unlinkabilityRequirementEClass, UnlinkabilityRequirement.class, "UnlinkabilityRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getUnlinkabilityRequirement_Linkability(), this.getLinkability(), "linkability", null, 1, 1, UnlinkabilityRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(privacyRequirementEClass, PrivacyRequirement.class, "PrivacyRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getPrivacyRequirement_Base_NamedElement(), theUMLPackage.getNamedElement(), null, "base_NamedElement", null, 0, 1, PrivacyRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getPrivacyRequirement_DataSubject(), thePdp4engCommonGDPRPackage.getDataSubject(), null, "dataSubject", null, 1, 1, PrivacyRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getPrivacyRequirement_Counterstakeholders(), theUMLPackage.getNamedElement(), null, "counterstakeholders", null, 0, -1, PrivacyRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getPrivacyRequirement_PersonalData(), thePdp4engCommonGDPRPackage.getPersonalData(), null, "personalData", null, 0, -1, PrivacyRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(dataUnlinkabilityRequirementEClass, DataUnlinkabilityRequirement.class, "DataUnlinkabilityRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataUnlinkabilityRequirement_Links(), theUMLPackage.getNamedElement(), null, "links", null, 0, -1, DataUnlinkabilityRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(controlersEClass, Controlers.class, "Controlers", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getControlers_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, Controlers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(linkEClass, Link.class, "Link", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLink_Base_NamedElement(), theUMLPackage.getNamedElement(), null, "base_NamedElement", null, 0, 1, Link.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getLink_Linkability(), this.getLinkability(), "linkability", null, 1, 1, Link.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(undectabilityRequirementEClass, UndectabilityRequirement.class, "UndectabilityRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(pseudonimityRequirementEClass, PseudonimityRequirement.class, "PseudonimityRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPseudonimityRequirement_Kind(), this.getPseudonymKind(), "kind", null, 1, 1, PseudonimityRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(ananomityRequirementEClass, AnanomityRequirement.class, "AnanomityRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(dataRecordRequirementEClass, DataRecordRequirement.class, "DataRecordRequirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataRecordRequirement_Base_DataStoreNode(), theUMLPackage.getDataStoreNode(), null, "base_DataStoreNode", null, 0, 1, DataRecordRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getDataRecordRequirement_DataList(), thePdp4engCommonGDPRPackage.getData(), null, "dataList", null, 0, -1, DataRecordRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(functionalRequirementsEClass, FunctionalRequirements.class, "FunctionalRequirements", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getFunctionalRequirements_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, FunctionalRequirements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(nonFunctionalRequirementsEClass, NonFunctionalRequirements.class, "NonFunctionalRequirements", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getNonFunctionalRequirements_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 0, 1, NonFunctionalRequirements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(lawfulByConsentEClass, LawfulByConsent.class, "LawfulByConsent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLawfulByConsent_Consent(), thePdp4engCommonGDPRPackage.getConsent(), null, "consent", null, 1, 1, LawfulByConsent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(lawfulByContractEClass, LawfulByContract.class, "LawfulByContract", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLawfulByContract_Contract(), thePdp4engCommonGDPRPackage.getContract(), null, "contract", null, 1, 1, LawfulByContract.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(lawfulByPublicInterestEClass, LawfulByPublicInterest.class, "LawfulByPublicInterest", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLawfulByPublicInterest_PublicInterest(), thePdp4engCommonGDPRPackage.getPublicInterest(), null, "publicInterest", null, 1, 1, LawfulByPublicInterest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(lawfulByLegitimateInterestEClass, LawfulByLegitimateInterest.class, "LawfulByLegitimateInterest", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLawfulByLegitimateInterest_LegitimateInterest(), thePdp4engCommonGDPRPackage.getLegitimateInterest(), null, "legitimateInterest", null, 1, 1, LawfulByLegitimateInterest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(lawfulByLegalObligationEClass, LawfulByLegalObligation.class, "LawfulByLegalObligation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLawfulByLegalObligation_LegalObligation(), thePdp4engCommonGDPRPackage.getLegalObligation(), null, "legalObligation", null, 1, 1, LawfulByLegalObligation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(lawfulByVitalInterestEClass, LawfulByVitalInterest.class, "LawfulByVitalInterest", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLawfulByVitalInterest_VitalInterest(), thePdp4engCommonGDPRPackage.getVitalInterest(), null, "vitalInterest", null, 1, 1, LawfulByVitalInterest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(linkabilityEEnum, Linkability.class, "Linkability");
+		addEEnumLiteral(linkabilityEEnum, Linkability.SINGLE);
+		addEEnumLiteral(linkabilityEEnum, Linkability.NOT_KNOWN);
+		addEEnumLiteral(linkabilityEEnum, Linkability.SUBGROUP);
+		addEEnumLiteral(linkabilityEEnum, Linkability.ANONYMOUS);
+
+		initEEnum(collectionMethodEEnum, CollectionMethod.class, "CollectionMethod");
+		addEEnumLiteral(collectionMethodEEnum, CollectionMethod.DIRECT);
+		addEEnumLiteral(collectionMethodEEnum, CollectionMethod.INDIRECT);
+		addEEnumLiteral(collectionMethodEEnum, CollectionMethod.REUSED);
+		addEEnumLiteral(collectionMethodEEnum, CollectionMethod.EXTERNAL);
+
+		initEEnum(durationEEnum, Duration.class, "Duration");
+		addEEnumLiteral(durationEEnum, Duration.FOR_ACTION);
+		addEEnumLiteral(durationEEnum, Duration.UNTIL_DELETED);
+		addEEnumLiteral(durationEEnum, Duration.UNLIMITED);
+
+		initEEnum(pseudonymKindEEnum, PseudonymKind.class, "PseudonymKind");
+		addEEnumLiteral(pseudonymKindEEnum, PseudonymKind.PERSON);
+		addEEnumLiteral(pseudonymKindEEnum, PseudonymKind.ROLE);
+		addEEnumLiteral(pseudonymKindEEnum, PseudonymKind.RELATION_SHIP);
+		addEEnumLiteral(pseudonymKindEEnum, PseudonymKind.ROLE_RELATION_SHIP);
+		addEEnumLiteral(pseudonymKindEEnum, PseudonymKind.TRANSACTION);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //pdp4engReqGDPRPackageImpl
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/pdp4engReqGDPRFactory.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/pdp4engReqGDPRFactory.java
new file mode 100644
index 0000000..99f3336
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/pdp4engReqGDPRFactory.java
@@ -0,0 +1,443 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage
+ * @generated
+ */
+public interface pdp4engReqGDPRFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	pdp4engReqGDPRFactory eINSTANCE = org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Process Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Process Requirement</em>'.
+	 * @generated
+	 */
+	ProcessRequirement createProcessRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Stakeholder</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Stakeholder</em>'.
+	 * @generated
+	 */
+	Stakeholder createStakeholder();
+
+	/**
+	 * Returns a new object of class '<em>Personal Data Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Personal Data Requirement</em>'.
+	 * @generated
+	 */
+	PersonalDataRequirement createPersonalDataRequirement();
+
+	/**
+	 * Returns a new object of class '<em>GDPR Principle</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>GDPR Principle</em>'.
+	 * @generated
+	 */
+	GDPRPrinciple createGDPRPrinciple();
+
+	/**
+	 * Returns a new object of class '<em>Process Principle</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Process Principle</em>'.
+	 * @generated
+	 */
+	ProcessPrinciple createProcessPrinciple();
+
+	/**
+	 * Returns a new object of class '<em>Purpose Personal Data Principle</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Purpose Personal Data Principle</em>'.
+	 * @generated
+	 */
+	PurposePersonalDataPrinciple createPurposePersonalDataPrinciple();
+
+	/**
+	 * Returns a new object of class '<em>Data Minimisation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Minimisation</em>'.
+	 * @generated
+	 */
+	DataMinimisation createDataMinimisation();
+
+	/**
+	 * Returns a new object of class '<em>Purpose Limitation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Purpose Limitation</em>'.
+	 * @generated
+	 */
+	PurposeLimitation createPurposeLimitation();
+
+	/**
+	 * Returns a new object of class '<em>Accuracy</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Accuracy</em>'.
+	 * @generated
+	 */
+	Accuracy createAccuracy();
+
+	/**
+	 * Returns a new object of class '<em>Storage Limitation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Storage Limitation</em>'.
+	 * @generated
+	 */
+	StorageLimitation createStorageLimitation();
+
+	/**
+	 * Returns a new object of class '<em>Lawful</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Lawful</em>'.
+	 * @generated
+	 */
+	Lawful createLawful();
+
+	/**
+	 * Returns a new object of class '<em>Fairly</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Fairly</em>'.
+	 * @generated
+	 */
+	Fairly createFairly();
+
+	/**
+	 * Returns a new object of class '<em>Transparency</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Transparency</em>'.
+	 * @generated
+	 */
+	Transparency createTransparency();
+
+	/**
+	 * Returns a new object of class '<em>Security Safety</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Security Safety</em>'.
+	 * @generated
+	 */
+	SecuritySafety createSecuritySafety();
+
+	/**
+	 * Returns a new object of class '<em>Related To</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Related To</em>'.
+	 * @generated
+	 */
+	RelatedTo createRelatedTo();
+
+	/**
+	 * Returns a new object of class '<em>Available At</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Available At</em>'.
+	 * @generated
+	 */
+	AvailableAt createAvailableAt();
+
+	/**
+	 * Returns a new object of class '<em>Derived From</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Derived From</em>'.
+	 * @generated
+	 */
+	DerivedFrom createDerivedFrom();
+
+	/**
+	 * Returns a new object of class '<em>Data Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Requirement</em>'.
+	 * @generated
+	 */
+	DataRequirement createDataRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Linkable</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Linkable</em>'.
+	 * @generated
+	 */
+	Linkable createLinkable();
+
+	/**
+	 * Returns a new object of class '<em>Generated Requirements</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Generated Requirements</em>'.
+	 * @generated
+	 */
+	GeneratedRequirements createGeneratedRequirements();
+
+	/**
+	 * Returns a new object of class '<em>Data Flow Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Flow Requirement</em>'.
+	 * @generated
+	 */
+	DataFlowRequirement createDataFlowRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Data Subjects</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Subjects</em>'.
+	 * @generated
+	 */
+	DataSubjects createDataSubjects();
+
+	/**
+	 * Returns a new object of class '<em>Data Requirements</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Requirements</em>'.
+	 * @generated
+	 */
+	DataRequirements createDataRequirements();
+
+	/**
+	 * Returns a new object of class '<em>Available Information</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Available Information</em>'.
+	 * @generated
+	 */
+	AvailableInformation createAvailableInformation();
+
+	/**
+	 * Returns a new object of class '<em>Personal Information</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Personal Information</em>'.
+	 * @generated
+	 */
+	PersonalInformation createPersonalInformation();
+
+	/**
+	 * Returns a new object of class '<em>Available Information Container</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Available Information Container</em>'.
+	 * @generated
+	 */
+	AvailableInformationContainer createAvailableInformationContainer();
+
+	/**
+	 * Returns a new object of class '<em>Personal Information Container</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Personal Information Container</em>'.
+	 * @generated
+	 */
+	PersonalInformationContainer createPersonalInformationContainer();
+
+	/**
+	 * Returns a new object of class '<em>Unlinkability Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Unlinkability Requirement</em>'.
+	 * @generated
+	 */
+	UnlinkabilityRequirement createUnlinkabilityRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Privacy Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Privacy Requirement</em>'.
+	 * @generated
+	 */
+	PrivacyRequirement createPrivacyRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Data Unlinkability Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Unlinkability Requirement</em>'.
+	 * @generated
+	 */
+	DataUnlinkabilityRequirement createDataUnlinkabilityRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Controlers</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Controlers</em>'.
+	 * @generated
+	 */
+	Controlers createControlers();
+
+	/**
+	 * Returns a new object of class '<em>Link</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Link</em>'.
+	 * @generated
+	 */
+	Link createLink();
+
+	/**
+	 * Returns a new object of class '<em>Undectability Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Undectability Requirement</em>'.
+	 * @generated
+	 */
+	UndectabilityRequirement createUndectabilityRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Pseudonimity Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Pseudonimity Requirement</em>'.
+	 * @generated
+	 */
+	PseudonimityRequirement createPseudonimityRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Ananomity Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ananomity Requirement</em>'.
+	 * @generated
+	 */
+	AnanomityRequirement createAnanomityRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Data Record Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Record Requirement</em>'.
+	 * @generated
+	 */
+	DataRecordRequirement createDataRecordRequirement();
+
+	/**
+	 * Returns a new object of class '<em>Functional Requirements</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Functional Requirements</em>'.
+	 * @generated
+	 */
+	FunctionalRequirements createFunctionalRequirements();
+
+	/**
+	 * Returns a new object of class '<em>Non Functional Requirements</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Non Functional Requirements</em>'.
+	 * @generated
+	 */
+	NonFunctionalRequirements createNonFunctionalRequirements();
+
+	/**
+	 * Returns a new object of class '<em>Lawful By Consent</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Lawful By Consent</em>'.
+	 * @generated
+	 */
+	LawfulByConsent createLawfulByConsent();
+
+	/**
+	 * Returns a new object of class '<em>Lawful By Contract</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Lawful By Contract</em>'.
+	 * @generated
+	 */
+	LawfulByContract createLawfulByContract();
+
+	/**
+	 * Returns a new object of class '<em>Lawful By Public Interest</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Lawful By Public Interest</em>'.
+	 * @generated
+	 */
+	LawfulByPublicInterest createLawfulByPublicInterest();
+
+	/**
+	 * Returns a new object of class '<em>Lawful By Legitimate Interest</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Lawful By Legitimate Interest</em>'.
+	 * @generated
+	 */
+	LawfulByLegitimateInterest createLawfulByLegitimateInterest();
+
+	/**
+	 * Returns a new object of class '<em>Lawful By Legal Obligation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Lawful By Legal Obligation</em>'.
+	 * @generated
+	 */
+	LawfulByLegalObligation createLawfulByLegalObligation();
+
+	/**
+	 * Returns a new object of class '<em>Lawful By Vital Interest</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Lawful By Vital Interest</em>'.
+	 * @generated
+	 */
+	LawfulByVitalInterest createLawfulByVitalInterest();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	pdp4engReqGDPRPackage getpdp4engReqGDPRPackage();
+
+} //pdp4engReqGDPRFactory
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/pdp4engReqGDPRPackage.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/pdp4engReqGDPRPackage.java
new file mode 100644
index 0000000..7bfc69d
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/pdp4engReqGDPRPackage.java
@@ -0,0 +1,4516 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Pdp4engCommonGDPRPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface pdp4engReqGDPRPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "pdp4engReqGDPR";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://org.eclipse.papyrus.pdp4eng.req.profile";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "pdp4engReqGDPR";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	pdp4engReqGDPRPackage eINSTANCE = org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessRequirementImpl <em>Process Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getProcessRequirement()
+	 * @generated
+	 */
+	int PROCESS_REQUIREMENT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__BASE_NAMED_ELEMENT = Pdp4engCommonGDPRPackage.PROCESS__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Personaldata</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__PERSONALDATA = Pdp4engCommonGDPRPackage.PROCESS__PERSONALDATA;
+
+	/**
+	 * The feature id for the '<em><b>Contributed To</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__CONTRIBUTED_TO = Pdp4engCommonGDPRPackage.PROCESS__CONTRIBUTED_TO;
+
+	/**
+	 * The feature id for the '<em><b>Perform AContract</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__PERFORM_ACONTRACT = Pdp4engCommonGDPRPackage.PROCESS__PERFORM_ACONTRACT;
+
+	/**
+	 * The feature id for the '<em><b>Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__DATA = Pdp4engCommonGDPRPackage.PROCESS__DATA;
+
+	/**
+	 * The feature id for the '<em><b>Needed For Public Interest</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__NEEDED_FOR_PUBLIC_INTEREST = Pdp4engCommonGDPRPackage.PROCESS__NEEDED_FOR_PUBLIC_INTEREST;
+
+	/**
+	 * The feature id for the '<em><b>Needed For Legimate Interest</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__NEEDED_FOR_LEGIMATE_INTEREST = Pdp4engCommonGDPRPackage.PROCESS__NEEDED_FOR_LEGIMATE_INTEREST;
+
+	/**
+	 * The feature id for the '<em><b>Needed For Legal Obligation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__NEEDED_FOR_LEGAL_OBLIGATION = Pdp4engCommonGDPRPackage.PROCESS__NEEDED_FOR_LEGAL_OBLIGATION;
+
+	/**
+	 * The feature id for the '<em><b>Needed For Vital Interest</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__NEEDED_FOR_VITAL_INTEREST = Pdp4engCommonGDPRPackage.PROCESS__NEEDED_FOR_VITAL_INTEREST;
+
+	/**
+	 * The feature id for the '<em><b>Requester</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__REQUESTER = Pdp4engCommonGDPRPackage.PROCESS_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Process Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT_FEATURE_COUNT = Pdp4engCommonGDPRPackage.PROCESS_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Process Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT_OPERATION_COUNT = Pdp4engCommonGDPRPackage.PROCESS_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.StakeholderImpl <em>Stakeholder</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.StakeholderImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getStakeholder()
+	 * @generated
+	 */
+	int STAKEHOLDER = 1;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STAKEHOLDER__BASE_NAMED_ELEMENT = 0;
+
+	/**
+	 * The number of structural features of the '<em>Stakeholder</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STAKEHOLDER_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Stakeholder</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STAKEHOLDER_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalDataRequirementImpl <em>Personal Data Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalDataRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPersonalDataRequirement()
+	 * @generated
+	 */
+	int PERSONAL_DATA_REQUIREMENT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_DATA_REQUIREMENT__BASE_NAMED_ELEMENT = Pdp4engCommonGDPRPackage.PERSONAL_DATA__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Related To</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_DATA_REQUIREMENT__RELATED_TO = Pdp4engCommonGDPRPackage.PERSONAL_DATA__RELATED_TO;
+
+	/**
+	 * The feature id for the '<em><b>Responsible</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_DATA_REQUIREMENT__RESPONSIBLE = Pdp4engCommonGDPRPackage.PERSONAL_DATA__RESPONSIBLE;
+
+	/**
+	 * The feature id for the '<em><b>Processed By</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_DATA_REQUIREMENT__PROCESSED_BY = Pdp4engCommonGDPRPackage.PERSONAL_DATA__PROCESSED_BY;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_DATA_REQUIREMENT__SOURCE = Pdp4engCommonGDPRPackage.PERSONAL_DATA_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Personal Data Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_DATA_REQUIREMENT_FEATURE_COUNT = Pdp4engCommonGDPRPackage.PERSONAL_DATA_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Personal Data Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_DATA_REQUIREMENT_OPERATION_COUNT = Pdp4engCommonGDPRPackage.PERSONAL_DATA_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GDPRPrincipleImpl <em>GDPR Principle</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GDPRPrincipleImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getGDPRPrinciple()
+	 * @generated
+	 */
+	int GDPR_PRINCIPLE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GDPR_PRINCIPLE__BASE_NAMED_ELEMENT = 0;
+
+	/**
+	 * The number of structural features of the '<em>GDPR Principle</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GDPR_PRINCIPLE_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>GDPR Principle</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GDPR_PRINCIPLE_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessPrincipleImpl <em>Process Principle</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessPrincipleImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getProcessPrinciple()
+	 * @generated
+	 */
+	int PROCESS_PRINCIPLE = 4;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PRINCIPLE__BASE_NAMED_ELEMENT = GDPR_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PRINCIPLE__PROCESS = GDPR_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PRINCIPLE__DATA_SUBJECT = GDPR_PRINCIPLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PRINCIPLE__PERSONAL_DATA = GDPR_PRINCIPLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Process Principle</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PRINCIPLE_FEATURE_COUNT = GDPR_PRINCIPLE_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of operations of the '<em>Process Principle</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PRINCIPLE_OPERATION_COUNT = GDPR_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposePersonalDataPrincipleImpl <em>Purpose Personal Data Principle</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposePersonalDataPrincipleImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPurposePersonalDataPrinciple()
+	 * @generated
+	 */
+	int PURPOSE_PERSONAL_DATA_PRINCIPLE = 5;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_PERSONAL_DATA_PRINCIPLE__BASE_NAMED_ELEMENT = GDPR_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Purpose</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE = GDPR_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA = GDPR_PRINCIPLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Purpose Personal Data Principle</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_PERSONAL_DATA_PRINCIPLE_FEATURE_COUNT = GDPR_PRINCIPLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of operations of the '<em>Purpose Personal Data Principle</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_PERSONAL_DATA_PRINCIPLE_OPERATION_COUNT = GDPR_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataMinimisationImpl <em>Data Minimisation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataMinimisationImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataMinimisation()
+	 * @generated
+	 */
+	int DATA_MINIMISATION = 6;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_MINIMISATION__BASE_NAMED_ELEMENT = PURPOSE_PERSONAL_DATA_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Purpose</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_MINIMISATION__PURPOSE = PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_MINIMISATION__PERSONAL_DATA = PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA;
+
+	/**
+	 * The number of structural features of the '<em>Data Minimisation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_MINIMISATION_FEATURE_COUNT = PURPOSE_PERSONAL_DATA_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Data Minimisation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_MINIMISATION_OPERATION_COUNT = PURPOSE_PERSONAL_DATA_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposeLimitationImpl <em>Purpose Limitation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposeLimitationImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPurposeLimitation()
+	 * @generated
+	 */
+	int PURPOSE_LIMITATION = 7;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_LIMITATION__BASE_NAMED_ELEMENT = PURPOSE_PERSONAL_DATA_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Purpose</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_LIMITATION__PURPOSE = PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_LIMITATION__PERSONAL_DATA = PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA;
+
+	/**
+	 * The number of structural features of the '<em>Purpose Limitation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_LIMITATION_FEATURE_COUNT = PURPOSE_PERSONAL_DATA_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Purpose Limitation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PURPOSE_LIMITATION_OPERATION_COUNT = PURPOSE_PERSONAL_DATA_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AccuracyImpl <em>Accuracy</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AccuracyImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAccuracy()
+	 * @generated
+	 */
+	int ACCURACY = 8;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCURACY__BASE_NAMED_ELEMENT = PURPOSE_PERSONAL_DATA_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Purpose</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCURACY__PURPOSE = PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCURACY__PERSONAL_DATA = PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA;
+
+	/**
+	 * The number of structural features of the '<em>Accuracy</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCURACY_FEATURE_COUNT = PURPOSE_PERSONAL_DATA_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Accuracy</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACCURACY_OPERATION_COUNT = PURPOSE_PERSONAL_DATA_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.StorageLimitationImpl <em>Storage Limitation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.StorageLimitationImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getStorageLimitation()
+	 * @generated
+	 */
+	int STORAGE_LIMITATION = 9;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORAGE_LIMITATION__BASE_NAMED_ELEMENT = PURPOSE_PERSONAL_DATA_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Purpose</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORAGE_LIMITATION__PURPOSE = PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORAGE_LIMITATION__PERSONAL_DATA = PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA;
+
+	/**
+	 * The number of structural features of the '<em>Storage Limitation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORAGE_LIMITATION_FEATURE_COUNT = PURPOSE_PERSONAL_DATA_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Storage Limitation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORAGE_LIMITATION_OPERATION_COUNT = PURPOSE_PERSONAL_DATA_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulImpl <em>Lawful</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawful()
+	 * @generated
+	 */
+	int LAWFUL = 10;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL__BASE_NAMED_ELEMENT = PROCESS_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL__PROCESS = PROCESS_PRINCIPLE__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL__DATA_SUBJECT = PROCESS_PRINCIPLE__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL__PERSONAL_DATA = PROCESS_PRINCIPLE__PERSONAL_DATA;
+
+	/**
+	 * The number of structural features of the '<em>Lawful</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_FEATURE_COUNT = PROCESS_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Lawful</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_OPERATION_COUNT = PROCESS_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.FairlyImpl <em>Fairly</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.FairlyImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getFairly()
+	 * @generated
+	 */
+	int FAIRLY = 11;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FAIRLY__BASE_NAMED_ELEMENT = PROCESS_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FAIRLY__PROCESS = PROCESS_PRINCIPLE__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FAIRLY__DATA_SUBJECT = PROCESS_PRINCIPLE__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FAIRLY__PERSONAL_DATA = PROCESS_PRINCIPLE__PERSONAL_DATA;
+
+	/**
+	 * The number of structural features of the '<em>Fairly</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FAIRLY_FEATURE_COUNT = PROCESS_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Fairly</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FAIRLY_OPERATION_COUNT = PROCESS_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.TransparencyImpl <em>Transparency</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.TransparencyImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getTransparency()
+	 * @generated
+	 */
+	int TRANSPARENCY = 12;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSPARENCY__BASE_NAMED_ELEMENT = PROCESS_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSPARENCY__PROCESS = PROCESS_PRINCIPLE__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSPARENCY__DATA_SUBJECT = PROCESS_PRINCIPLE__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSPARENCY__PERSONAL_DATA = PROCESS_PRINCIPLE__PERSONAL_DATA;
+
+	/**
+	 * The number of structural features of the '<em>Transparency</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSPARENCY_FEATURE_COUNT = PROCESS_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Transparency</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRANSPARENCY_OPERATION_COUNT = PROCESS_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.SecuritySafetyImpl <em>Security Safety</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.SecuritySafetyImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getSecuritySafety()
+	 * @generated
+	 */
+	int SECURITY_SAFETY = 13;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECURITY_SAFETY__BASE_NAMED_ELEMENT = PROCESS_PRINCIPLE__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECURITY_SAFETY__PROCESS = PROCESS_PRINCIPLE__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECURITY_SAFETY__DATA_SUBJECT = PROCESS_PRINCIPLE__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECURITY_SAFETY__PERSONAL_DATA = PROCESS_PRINCIPLE__PERSONAL_DATA;
+
+	/**
+	 * The number of structural features of the '<em>Security Safety</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECURITY_SAFETY_FEATURE_COUNT = PROCESS_PRINCIPLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Security Safety</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECURITY_SAFETY_OPERATION_COUNT = PROCESS_PRINCIPLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.RelatedToImpl <em>Related To</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.RelatedToImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getRelatedTo()
+	 * @generated
+	 */
+	int RELATED_TO = 14;
+
+	/**
+	 * The feature id for the '<em><b>Sensitive</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATED_TO__SENSITIVE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Linkability</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATED_TO__LINKABILITY = 1;
+
+	/**
+	 * The feature id for the '<em><b>Collection</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATED_TO__COLLECTION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Base Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATED_TO__BASE_ELEMENT = 3;
+
+	/**
+	 * The number of structural features of the '<em>Related To</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATED_TO_FEATURE_COUNT = 4;
+
+	/**
+	 * The number of operations of the '<em>Related To</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATED_TO_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableAtImpl <em>Available At</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableAtImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAvailableAt()
+	 * @generated
+	 */
+	int AVAILABLE_AT = 15;
+
+	/**
+	 * The feature id for the '<em><b>Duration</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_AT__DURATION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Base Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_AT__BASE_ELEMENT = 1;
+
+	/**
+	 * The number of structural features of the '<em>Available At</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_AT_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Available At</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_AT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DerivedFromImpl <em>Derived From</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DerivedFromImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDerivedFrom()
+	 * @generated
+	 */
+	int DERIVED_FROM = 16;
+
+	/**
+	 * The feature id for the '<em><b>Base Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_FROM__BASE_ELEMENT = 0;
+
+	/**
+	 * The number of structural features of the '<em>Derived From</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_FROM_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Derived From</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_FROM_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRequirementImpl <em>Data Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataRequirement()
+	 * @generated
+	 */
+	int DATA_REQUIREMENT = 17;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_REQUIREMENT__BASE_NAMED_ELEMENT = Pdp4engCommonGDPRPackage.DATA__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The number of structural features of the '<em>Data Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_REQUIREMENT_FEATURE_COUNT = Pdp4engCommonGDPRPackage.DATA_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Data Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_REQUIREMENT_OPERATION_COUNT = Pdp4engCommonGDPRPackage.DATA_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkableImpl <em>Linkable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkableImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLinkable()
+	 * @generated
+	 */
+	int LINKABLE = 18;
+
+	/**
+	 * The feature id for the '<em><b>Duration</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINKABLE__DURATION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Linkability</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINKABLE__LINKABILITY = 1;
+
+	/**
+	 * The feature id for the '<em><b>Base Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINKABLE__BASE_ELEMENT = 2;
+
+	/**
+	 * The number of structural features of the '<em>Linkable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINKABLE_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Linkable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINKABLE_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GeneratedRequirementsImpl <em>Generated Requirements</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GeneratedRequirementsImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getGeneratedRequirements()
+	 * @generated
+	 */
+	int GENERATED_REQUIREMENTS = 19;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATED_REQUIREMENTS__BASE_PACKAGE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Generated Requirements</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATED_REQUIREMENTS_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Generated Requirements</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GENERATED_REQUIREMENTS_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataFlowRequirementImpl <em>Data Flow Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataFlowRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataFlowRequirement()
+	 * @generated
+	 */
+	int DATA_FLOW_REQUIREMENT = 20;
+
+	/**
+	 * The feature id for the '<em><b>Base Activity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_FLOW_REQUIREMENT__BASE_ACTIVITY = 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Flow Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_FLOW_REQUIREMENT_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Data Flow Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_FLOW_REQUIREMENT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataSubjectsImpl <em>Data Subjects</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataSubjectsImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataSubjects()
+	 * @generated
+	 */
+	int DATA_SUBJECTS = 21;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_SUBJECTS__BASE_PACKAGE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Subjects</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_SUBJECTS_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Data Subjects</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_SUBJECTS_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRequirementsImpl <em>Data Requirements</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRequirementsImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataRequirements()
+	 * @generated
+	 */
+	int DATA_REQUIREMENTS = 22;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_REQUIREMENTS__BASE_PACKAGE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Requirements</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_REQUIREMENTS_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Data Requirements</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_REQUIREMENTS_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationImpl <em>Available Information</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAvailableInformation()
+	 * @generated
+	 */
+	int AVAILABLE_INFORMATION = 23;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_INFORMATION__BASE_PACKAGE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Concerns</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_INFORMATION__CONCERNS = 1;
+
+	/**
+	 * The number of structural features of the '<em>Available Information</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_INFORMATION_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Available Information</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_INFORMATION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationImpl <em>Personal Information</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPersonalInformation()
+	 * @generated
+	 */
+	int PERSONAL_INFORMATION = 24;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_INFORMATION__BASE_PACKAGE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Concerns</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_INFORMATION__CONCERNS = 1;
+
+	/**
+	 * The number of structural features of the '<em>Personal Information</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_INFORMATION_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Personal Information</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_INFORMATION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationContainerImpl <em>Available Information Container</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationContainerImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAvailableInformationContainer()
+	 * @generated
+	 */
+	int AVAILABLE_INFORMATION_CONTAINER = 25;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_INFORMATION_CONTAINER__BASE_PACKAGE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Available Information Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_INFORMATION_CONTAINER_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Available Information Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABLE_INFORMATION_CONTAINER_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationContainerImpl <em>Personal Information Container</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationContainerImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPersonalInformationContainer()
+	 * @generated
+	 */
+	int PERSONAL_INFORMATION_CONTAINER = 26;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_INFORMATION_CONTAINER__BASE_PACKAGE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Personal Information Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_INFORMATION_CONTAINER_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Personal Information Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSONAL_INFORMATION_CONTAINER_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PrivacyRequirementImpl <em>Privacy Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PrivacyRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPrivacyRequirement()
+	 * @generated
+	 */
+	int PRIVACY_REQUIREMENT = 28;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVACY_REQUIREMENT__DATA_SUBJECT = 1;
+
+	/**
+	 * The feature id for the '<em><b>Counterstakeholders</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS = 2;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVACY_REQUIREMENT__PERSONAL_DATA = 3;
+
+	/**
+	 * The number of structural features of the '<em>Privacy Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVACY_REQUIREMENT_FEATURE_COUNT = 4;
+
+	/**
+	 * The number of operations of the '<em>Privacy Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVACY_REQUIREMENT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.UnlinkabilityRequirementImpl <em>Unlinkability Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.UnlinkabilityRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getUnlinkabilityRequirement()
+	 * @generated
+	 */
+	int UNLINKABILITY_REQUIREMENT = 27;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNLINKABILITY_REQUIREMENT__BASE_NAMED_ELEMENT = PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNLINKABILITY_REQUIREMENT__DATA_SUBJECT = PRIVACY_REQUIREMENT__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Counterstakeholders</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNLINKABILITY_REQUIREMENT__COUNTERSTAKEHOLDERS = PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNLINKABILITY_REQUIREMENT__PERSONAL_DATA = PRIVACY_REQUIREMENT__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Linkability</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNLINKABILITY_REQUIREMENT__LINKABILITY = PRIVACY_REQUIREMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Unlinkability Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNLINKABILITY_REQUIREMENT_FEATURE_COUNT = PRIVACY_REQUIREMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Unlinkability Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNLINKABILITY_REQUIREMENT_OPERATION_COUNT = PRIVACY_REQUIREMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataUnlinkabilityRequirementImpl <em>Data Unlinkability Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataUnlinkabilityRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataUnlinkabilityRequirement()
+	 * @generated
+	 */
+	int DATA_UNLINKABILITY_REQUIREMENT = 29;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_UNLINKABILITY_REQUIREMENT__BASE_NAMED_ELEMENT = UNLINKABILITY_REQUIREMENT__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_UNLINKABILITY_REQUIREMENT__DATA_SUBJECT = UNLINKABILITY_REQUIREMENT__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Counterstakeholders</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_UNLINKABILITY_REQUIREMENT__COUNTERSTAKEHOLDERS = UNLINKABILITY_REQUIREMENT__COUNTERSTAKEHOLDERS;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_UNLINKABILITY_REQUIREMENT__PERSONAL_DATA = UNLINKABILITY_REQUIREMENT__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Linkability</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_UNLINKABILITY_REQUIREMENT__LINKABILITY = UNLINKABILITY_REQUIREMENT__LINKABILITY;
+
+	/**
+	 * The feature id for the '<em><b>Links</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_UNLINKABILITY_REQUIREMENT__LINKS = UNLINKABILITY_REQUIREMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Unlinkability Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_UNLINKABILITY_REQUIREMENT_FEATURE_COUNT = UNLINKABILITY_REQUIREMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Data Unlinkability Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_UNLINKABILITY_REQUIREMENT_OPERATION_COUNT = UNLINKABILITY_REQUIREMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ControlersImpl <em>Controlers</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ControlersImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getControlers()
+	 * @generated
+	 */
+	int CONTROLERS = 30;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTROLERS__BASE_PACKAGE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Controlers</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTROLERS_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Controlers</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTROLERS_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkImpl <em>Link</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLink()
+	 * @generated
+	 */
+	int LINK = 31;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK__BASE_NAMED_ELEMENT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Linkability</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK__LINKABILITY = 1;
+
+	/**
+	 * The number of structural features of the '<em>Link</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Link</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LINK_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.UndectabilityRequirementImpl <em>Undectability Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.UndectabilityRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getUndectabilityRequirement()
+	 * @generated
+	 */
+	int UNDECTABILITY_REQUIREMENT = 32;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNDECTABILITY_REQUIREMENT__BASE_NAMED_ELEMENT = PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNDECTABILITY_REQUIREMENT__DATA_SUBJECT = PRIVACY_REQUIREMENT__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Counterstakeholders</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNDECTABILITY_REQUIREMENT__COUNTERSTAKEHOLDERS = PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNDECTABILITY_REQUIREMENT__PERSONAL_DATA = PRIVACY_REQUIREMENT__PERSONAL_DATA;
+
+	/**
+	 * The number of structural features of the '<em>Undectability Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNDECTABILITY_REQUIREMENT_FEATURE_COUNT = PRIVACY_REQUIREMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Undectability Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNDECTABILITY_REQUIREMENT_OPERATION_COUNT = PRIVACY_REQUIREMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PseudonimityRequirementImpl <em>Pseudonimity Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PseudonimityRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPseudonimityRequirement()
+	 * @generated
+	 */
+	int PSEUDONIMITY_REQUIREMENT = 33;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDONIMITY_REQUIREMENT__BASE_NAMED_ELEMENT = PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDONIMITY_REQUIREMENT__DATA_SUBJECT = PRIVACY_REQUIREMENT__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Counterstakeholders</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDONIMITY_REQUIREMENT__COUNTERSTAKEHOLDERS = PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDONIMITY_REQUIREMENT__PERSONAL_DATA = PRIVACY_REQUIREMENT__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDONIMITY_REQUIREMENT__KIND = PRIVACY_REQUIREMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Pseudonimity Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDONIMITY_REQUIREMENT_FEATURE_COUNT = PRIVACY_REQUIREMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Pseudonimity Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PSEUDONIMITY_REQUIREMENT_OPERATION_COUNT = PRIVACY_REQUIREMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AnanomityRequirementImpl <em>Ananomity Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AnanomityRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAnanomityRequirement()
+	 * @generated
+	 */
+	int ANANOMITY_REQUIREMENT = 34;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANANOMITY_REQUIREMENT__BASE_NAMED_ELEMENT = UNLINKABILITY_REQUIREMENT__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANANOMITY_REQUIREMENT__DATA_SUBJECT = UNLINKABILITY_REQUIREMENT__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Counterstakeholders</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANANOMITY_REQUIREMENT__COUNTERSTAKEHOLDERS = UNLINKABILITY_REQUIREMENT__COUNTERSTAKEHOLDERS;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANANOMITY_REQUIREMENT__PERSONAL_DATA = UNLINKABILITY_REQUIREMENT__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Linkability</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANANOMITY_REQUIREMENT__LINKABILITY = UNLINKABILITY_REQUIREMENT__LINKABILITY;
+
+	/**
+	 * The number of structural features of the '<em>Ananomity Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANANOMITY_REQUIREMENT_FEATURE_COUNT = UNLINKABILITY_REQUIREMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Ananomity Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANANOMITY_REQUIREMENT_OPERATION_COUNT = UNLINKABILITY_REQUIREMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRecordRequirementImpl <em>Data Record Requirement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRecordRequirementImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataRecordRequirement()
+	 * @generated
+	 */
+	int DATA_RECORD_REQUIREMENT = 35;
+
+	/**
+	 * The feature id for the '<em><b>Base Data Store Node</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_RECORD_REQUIREMENT__BASE_DATA_STORE_NODE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Data List</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_RECORD_REQUIREMENT__DATA_LIST = 1;
+
+	/**
+	 * The number of structural features of the '<em>Data Record Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_RECORD_REQUIREMENT_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Data Record Requirement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_RECORD_REQUIREMENT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.FunctionalRequirementsImpl <em>Functional Requirements</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.FunctionalRequirementsImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getFunctionalRequirements()
+	 * @generated
+	 */
+	int FUNCTIONAL_REQUIREMENTS = 36;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Functional Requirements</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTIONAL_REQUIREMENTS_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Functional Requirements</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTIONAL_REQUIREMENTS_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.NonFunctionalRequirementsImpl <em>Non Functional Requirements</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.NonFunctionalRequirementsImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getNonFunctionalRequirements()
+	 * @generated
+	 */
+	int NON_FUNCTIONAL_REQUIREMENTS = 37;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NON_FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Non Functional Requirements</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NON_FUNCTIONAL_REQUIREMENTS_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Non Functional Requirements</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NON_FUNCTIONAL_REQUIREMENTS_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByConsentImpl <em>Lawful By Consent</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByConsentImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByConsent()
+	 * @generated
+	 */
+	int LAWFUL_BY_CONSENT = 38;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONSENT__BASE_NAMED_ELEMENT = LAWFUL__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONSENT__PROCESS = LAWFUL__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONSENT__DATA_SUBJECT = LAWFUL__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONSENT__PERSONAL_DATA = LAWFUL__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Consent</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONSENT__CONSENT = LAWFUL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Lawful By Consent</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONSENT_FEATURE_COUNT = LAWFUL_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Lawful By Consent</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONSENT_OPERATION_COUNT = LAWFUL_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByContractImpl <em>Lawful By Contract</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByContractImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByContract()
+	 * @generated
+	 */
+	int LAWFUL_BY_CONTRACT = 39;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONTRACT__BASE_NAMED_ELEMENT = LAWFUL__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONTRACT__PROCESS = LAWFUL__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONTRACT__DATA_SUBJECT = LAWFUL__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONTRACT__PERSONAL_DATA = LAWFUL__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Contract</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONTRACT__CONTRACT = LAWFUL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Lawful By Contract</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONTRACT_FEATURE_COUNT = LAWFUL_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Lawful By Contract</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_CONTRACT_OPERATION_COUNT = LAWFUL_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByPublicInterestImpl <em>Lawful By Public Interest</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByPublicInterestImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByPublicInterest()
+	 * @generated
+	 */
+	int LAWFUL_BY_PUBLIC_INTEREST = 40;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_PUBLIC_INTEREST__BASE_NAMED_ELEMENT = LAWFUL__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_PUBLIC_INTEREST__PROCESS = LAWFUL__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_PUBLIC_INTEREST__DATA_SUBJECT = LAWFUL__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_PUBLIC_INTEREST__PERSONAL_DATA = LAWFUL__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Public Interest</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_PUBLIC_INTEREST__PUBLIC_INTEREST = LAWFUL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Lawful By Public Interest</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_PUBLIC_INTEREST_FEATURE_COUNT = LAWFUL_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Lawful By Public Interest</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_PUBLIC_INTEREST_OPERATION_COUNT = LAWFUL_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegitimateInterestImpl <em>Lawful By Legitimate Interest</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegitimateInterestImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByLegitimateInterest()
+	 * @generated
+	 */
+	int LAWFUL_BY_LEGITIMATE_INTEREST = 41;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGITIMATE_INTEREST__BASE_NAMED_ELEMENT = LAWFUL__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGITIMATE_INTEREST__PROCESS = LAWFUL__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGITIMATE_INTEREST__DATA_SUBJECT = LAWFUL__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGITIMATE_INTEREST__PERSONAL_DATA = LAWFUL__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Legitimate Interest</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGITIMATE_INTEREST__LEGITIMATE_INTEREST = LAWFUL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Lawful By Legitimate Interest</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGITIMATE_INTEREST_FEATURE_COUNT = LAWFUL_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Lawful By Legitimate Interest</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGITIMATE_INTEREST_OPERATION_COUNT = LAWFUL_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegalObligationImpl <em>Lawful By Legal Obligation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegalObligationImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByLegalObligation()
+	 * @generated
+	 */
+	int LAWFUL_BY_LEGAL_OBLIGATION = 42;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGAL_OBLIGATION__BASE_NAMED_ELEMENT = LAWFUL__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGAL_OBLIGATION__PROCESS = LAWFUL__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGAL_OBLIGATION__DATA_SUBJECT = LAWFUL__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGAL_OBLIGATION__PERSONAL_DATA = LAWFUL__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Legal Obligation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGAL_OBLIGATION__LEGAL_OBLIGATION = LAWFUL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Lawful By Legal Obligation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGAL_OBLIGATION_FEATURE_COUNT = LAWFUL_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Lawful By Legal Obligation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_LEGAL_OBLIGATION_OPERATION_COUNT = LAWFUL_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByVitalInterestImpl <em>Lawful By Vital Interest</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByVitalInterestImpl
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByVitalInterest()
+	 * @generated
+	 */
+	int LAWFUL_BY_VITAL_INTEREST = 43;
+
+	/**
+	 * The feature id for the '<em><b>Base Named Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_VITAL_INTEREST__BASE_NAMED_ELEMENT = LAWFUL__BASE_NAMED_ELEMENT;
+
+	/**
+	 * The feature id for the '<em><b>Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_VITAL_INTEREST__PROCESS = LAWFUL__PROCESS;
+
+	/**
+	 * The feature id for the '<em><b>Data Subject</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_VITAL_INTEREST__DATA_SUBJECT = LAWFUL__DATA_SUBJECT;
+
+	/**
+	 * The feature id for the '<em><b>Personal Data</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_VITAL_INTEREST__PERSONAL_DATA = LAWFUL__PERSONAL_DATA;
+
+	/**
+	 * The feature id for the '<em><b>Vital Interest</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_VITAL_INTEREST__VITAL_INTEREST = LAWFUL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Lawful By Vital Interest</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_VITAL_INTEREST_FEATURE_COUNT = LAWFUL_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Lawful By Vital Interest</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LAWFUL_BY_VITAL_INTEREST_OPERATION_COUNT = LAWFUL_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability <em>Linkability</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLinkability()
+	 * @generated
+	 */
+	int LINKABILITY = 44;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod <em>Collection Method</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getCollectionMethod()
+	 * @generated
+	 */
+	int COLLECTION_METHOD = 45;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration <em>Duration</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDuration()
+	 * @generated
+	 */
+	int DURATION = 46;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind <em>Pseudonym Kind</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPseudonymKind()
+	 * @generated
+	 */
+	int PSEUDONYM_KIND = 47;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement <em>Process Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Process Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement
+	 * @generated
+	 */
+	EClass getProcessRequirement();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement#getRequester <em>Requester</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Requester</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement#getRequester()
+	 * @see #getProcessRequirement()
+	 * @generated
+	 */
+	EReference getProcessRequirement_Requester();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder <em>Stakeholder</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Stakeholder</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder
+	 * @generated
+	 */
+	EClass getStakeholder();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder#getBase_NamedElement <em>Base Named Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Named Element</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder#getBase_NamedElement()
+	 * @see #getStakeholder()
+	 * @generated
+	 */
+	EReference getStakeholder_Base_NamedElement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement <em>Personal Data Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Personal Data Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement
+	 * @generated
+	 */
+	EClass getPersonalDataRequirement();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement#getSource <em>Source</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Source</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement#getSource()
+	 * @see #getPersonalDataRequirement()
+	 * @generated
+	 */
+	EReference getPersonalDataRequirement_Source();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple <em>GDPR Principle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>GDPR Principle</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple
+	 * @generated
+	 */
+	EClass getGDPRPrinciple();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple#getBase_NamedElement <em>Base Named Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Named Element</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple#getBase_NamedElement()
+	 * @see #getGDPRPrinciple()
+	 * @generated
+	 */
+	EReference getGDPRPrinciple_Base_NamedElement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple <em>Process Principle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Process Principle</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple
+	 * @generated
+	 */
+	EClass getProcessPrinciple();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getProcess <em>Process</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Process</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getProcess()
+	 * @see #getProcessPrinciple()
+	 * @generated
+	 */
+	EReference getProcessPrinciple_Process();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getDataSubject <em>Data Subject</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Data Subject</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getDataSubject()
+	 * @see #getProcessPrinciple()
+	 * @generated
+	 */
+	EReference getProcessPrinciple_DataSubject();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getPersonalData <em>Personal Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Personal Data</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple#getPersonalData()
+	 * @see #getProcessPrinciple()
+	 * @generated
+	 */
+	EReference getProcessPrinciple_PersonalData();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple <em>Purpose Personal Data Principle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Purpose Personal Data Principle</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple
+	 * @generated
+	 */
+	EClass getPurposePersonalDataPrinciple();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple#getPurpose <em>Purpose</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Purpose</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple#getPurpose()
+	 * @see #getPurposePersonalDataPrinciple()
+	 * @generated
+	 */
+	EReference getPurposePersonalDataPrinciple_Purpose();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple#getPersonalData <em>Personal Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Personal Data</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple#getPersonalData()
+	 * @see #getPurposePersonalDataPrinciple()
+	 * @generated
+	 */
+	EReference getPurposePersonalDataPrinciple_PersonalData();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation <em>Data Minimisation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Minimisation</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation
+	 * @generated
+	 */
+	EClass getDataMinimisation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation <em>Purpose Limitation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Purpose Limitation</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation
+	 * @generated
+	 */
+	EClass getPurposeLimitation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy <em>Accuracy</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Accuracy</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy
+	 * @generated
+	 */
+	EClass getAccuracy();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation <em>Storage Limitation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Storage Limitation</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation
+	 * @generated
+	 */
+	EClass getStorageLimitation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful <em>Lawful</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Lawful</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful
+	 * @generated
+	 */
+	EClass getLawful();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly <em>Fairly</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Fairly</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly
+	 * @generated
+	 */
+	EClass getFairly();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency <em>Transparency</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Transparency</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency
+	 * @generated
+	 */
+	EClass getTransparency();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety <em>Security Safety</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Security Safety</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety
+	 * @generated
+	 */
+	EClass getSecuritySafety();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo <em>Related To</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Related To</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo
+	 * @generated
+	 */
+	EClass getRelatedTo();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#isSensitive <em>Sensitive</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensitive</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#isSensitive()
+	 * @see #getRelatedTo()
+	 * @generated
+	 */
+	EAttribute getRelatedTo_Sensitive();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getLinkability <em>Linkability</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Linkability</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getLinkability()
+	 * @see #getRelatedTo()
+	 * @generated
+	 */
+	EAttribute getRelatedTo_Linkability();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getCollection <em>Collection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Collection</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getCollection()
+	 * @see #getRelatedTo()
+	 * @generated
+	 */
+	EAttribute getRelatedTo_Collection();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getBase_Element <em>Base Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Element</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo#getBase_Element()
+	 * @see #getRelatedTo()
+	 * @generated
+	 */
+	EReference getRelatedTo_Base_Element();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt <em>Available At</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Available At</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt
+	 * @generated
+	 */
+	EClass getAvailableAt();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt#getDuration <em>Duration</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Duration</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt#getDuration()
+	 * @see #getAvailableAt()
+	 * @generated
+	 */
+	EAttribute getAvailableAt_Duration();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt#getBase_Element <em>Base Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Element</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt#getBase_Element()
+	 * @see #getAvailableAt()
+	 * @generated
+	 */
+	EReference getAvailableAt_Base_Element();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom <em>Derived From</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Derived From</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom
+	 * @generated
+	 */
+	EClass getDerivedFrom();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom#getBase_Element <em>Base Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Element</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom#getBase_Element()
+	 * @see #getDerivedFrom()
+	 * @generated
+	 */
+	EReference getDerivedFrom_Base_Element();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirement <em>Data Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirement
+	 * @generated
+	 */
+	EClass getDataRequirement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable <em>Linkable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Linkable</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable
+	 * @generated
+	 */
+	EClass getLinkable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getDuration <em>Duration</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Duration</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getDuration()
+	 * @see #getLinkable()
+	 * @generated
+	 */
+	EAttribute getLinkable_Duration();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getLinkability <em>Linkability</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Linkability</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getLinkability()
+	 * @see #getLinkable()
+	 * @generated
+	 */
+	EAttribute getLinkable_Linkability();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getBase_Element <em>Base Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Element</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable#getBase_Element()
+	 * @see #getLinkable()
+	 * @generated
+	 */
+	EReference getLinkable_Base_Element();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements <em>Generated Requirements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Generated Requirements</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements
+	 * @generated
+	 */
+	EClass getGeneratedRequirements();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements#getBase_Package()
+	 * @see #getGeneratedRequirements()
+	 * @generated
+	 */
+	EReference getGeneratedRequirements_Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement <em>Data Flow Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Flow Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement
+	 * @generated
+	 */
+	EClass getDataFlowRequirement();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement#getBase_Activity <em>Base Activity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Activity</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement#getBase_Activity()
+	 * @see #getDataFlowRequirement()
+	 * @generated
+	 */
+	EReference getDataFlowRequirement_Base_Activity();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects <em>Data Subjects</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Subjects</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects
+	 * @generated
+	 */
+	EClass getDataSubjects();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects#getBase_Package()
+	 * @see #getDataSubjects()
+	 * @generated
+	 */
+	EReference getDataSubjects_Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements <em>Data Requirements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Requirements</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements
+	 * @generated
+	 */
+	EClass getDataRequirements();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements#getBase_Package()
+	 * @see #getDataRequirements()
+	 * @generated
+	 */
+	EReference getDataRequirements_Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation <em>Available Information</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Available Information</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation
+	 * @generated
+	 */
+	EClass getAvailableInformation();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation#getBase_Package()
+	 * @see #getAvailableInformation()
+	 * @generated
+	 */
+	EReference getAvailableInformation_Base_Package();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation#getConcerns <em>Concerns</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Concerns</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation#getConcerns()
+	 * @see #getAvailableInformation()
+	 * @generated
+	 */
+	EReference getAvailableInformation_Concerns();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation <em>Personal Information</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Personal Information</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation
+	 * @generated
+	 */
+	EClass getPersonalInformation();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation#getBase_Package()
+	 * @see #getPersonalInformation()
+	 * @generated
+	 */
+	EReference getPersonalInformation_Base_Package();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation#getConcerns <em>Concerns</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Concerns</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation#getConcerns()
+	 * @see #getPersonalInformation()
+	 * @generated
+	 */
+	EReference getPersonalInformation_Concerns();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer <em>Available Information Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Available Information Container</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer
+	 * @generated
+	 */
+	EClass getAvailableInformationContainer();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer#getBase_Package()
+	 * @see #getAvailableInformationContainer()
+	 * @generated
+	 */
+	EReference getAvailableInformationContainer_Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer <em>Personal Information Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Personal Information Container</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer
+	 * @generated
+	 */
+	EClass getPersonalInformationContainer();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer#getBase_Package()
+	 * @see #getPersonalInformationContainer()
+	 * @generated
+	 */
+	EReference getPersonalInformationContainer_Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement <em>Unlinkability Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Unlinkability Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement
+	 * @generated
+	 */
+	EClass getUnlinkabilityRequirement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement#getLinkability <em>Linkability</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Linkability</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement#getLinkability()
+	 * @see #getUnlinkabilityRequirement()
+	 * @generated
+	 */
+	EAttribute getUnlinkabilityRequirement_Linkability();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement <em>Privacy Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Privacy Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement
+	 * @generated
+	 */
+	EClass getPrivacyRequirement();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getBase_NamedElement <em>Base Named Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Named Element</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getBase_NamedElement()
+	 * @see #getPrivacyRequirement()
+	 * @generated
+	 */
+	EReference getPrivacyRequirement_Base_NamedElement();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getDataSubject <em>Data Subject</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Data Subject</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getDataSubject()
+	 * @see #getPrivacyRequirement()
+	 * @generated
+	 */
+	EReference getPrivacyRequirement_DataSubject();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getCounterstakeholders <em>Counterstakeholders</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Counterstakeholders</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getCounterstakeholders()
+	 * @see #getPrivacyRequirement()
+	 * @generated
+	 */
+	EReference getPrivacyRequirement_Counterstakeholders();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getPersonalData <em>Personal Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Personal Data</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement#getPersonalData()
+	 * @see #getPrivacyRequirement()
+	 * @generated
+	 */
+	EReference getPrivacyRequirement_PersonalData();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataUnlinkabilityRequirement <em>Data Unlinkability Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Unlinkability Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataUnlinkabilityRequirement
+	 * @generated
+	 */
+	EClass getDataUnlinkabilityRequirement();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataUnlinkabilityRequirement#getLinks <em>Links</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Links</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataUnlinkabilityRequirement#getLinks()
+	 * @see #getDataUnlinkabilityRequirement()
+	 * @generated
+	 */
+	EReference getDataUnlinkabilityRequirement_Links();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers <em>Controlers</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Controlers</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers
+	 * @generated
+	 */
+	EClass getControlers();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers#getBase_Package()
+	 * @see #getControlers()
+	 * @generated
+	 */
+	EReference getControlers_Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link <em>Link</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Link</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link
+	 * @generated
+	 */
+	EClass getLink();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link#getBase_NamedElement <em>Base Named Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Named Element</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link#getBase_NamedElement()
+	 * @see #getLink()
+	 * @generated
+	 */
+	EReference getLink_Base_NamedElement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link#getLinkability <em>Linkability</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Linkability</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link#getLinkability()
+	 * @see #getLink()
+	 * @generated
+	 */
+	EAttribute getLink_Linkability();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UndectabilityRequirement <em>Undectability Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Undectability Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UndectabilityRequirement
+	 * @generated
+	 */
+	EClass getUndectabilityRequirement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement <em>Pseudonimity Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Pseudonimity Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement
+	 * @generated
+	 */
+	EClass getPseudonimityRequirement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement#getKind <em>Kind</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Kind</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement#getKind()
+	 * @see #getPseudonimityRequirement()
+	 * @generated
+	 */
+	EAttribute getPseudonimityRequirement_Kind();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AnanomityRequirement <em>Ananomity Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ananomity Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AnanomityRequirement
+	 * @generated
+	 */
+	EClass getAnanomityRequirement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement <em>Data Record Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Record Requirement</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement
+	 * @generated
+	 */
+	EClass getDataRecordRequirement();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement#getBase_DataStoreNode <em>Base Data Store Node</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Data Store Node</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement#getBase_DataStoreNode()
+	 * @see #getDataRecordRequirement()
+	 * @generated
+	 */
+	EReference getDataRecordRequirement_Base_DataStoreNode();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement#getDataList <em>Data List</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Data List</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement#getDataList()
+	 * @see #getDataRecordRequirement()
+	 * @generated
+	 */
+	EReference getDataRecordRequirement_DataList();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements <em>Functional Requirements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Functional Requirements</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements
+	 * @generated
+	 */
+	EClass getFunctionalRequirements();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements#getBase_Package()
+	 * @see #getFunctionalRequirements()
+	 * @generated
+	 */
+	EReference getFunctionalRequirements_Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements <em>Non Functional Requirements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Non Functional Requirements</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements
+	 * @generated
+	 */
+	EClass getNonFunctionalRequirements();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements#getBase_Package()
+	 * @see #getNonFunctionalRequirements()
+	 * @generated
+	 */
+	EReference getNonFunctionalRequirements_Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent <em>Lawful By Consent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Lawful By Consent</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent
+	 * @generated
+	 */
+	EClass getLawfulByConsent();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent#getConsent <em>Consent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Consent</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent#getConsent()
+	 * @see #getLawfulByConsent()
+	 * @generated
+	 */
+	EReference getLawfulByConsent_Consent();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract <em>Lawful By Contract</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Lawful By Contract</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract
+	 * @generated
+	 */
+	EClass getLawfulByContract();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract#getContract <em>Contract</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Contract</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract#getContract()
+	 * @see #getLawfulByContract()
+	 * @generated
+	 */
+	EReference getLawfulByContract_Contract();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest <em>Lawful By Public Interest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Lawful By Public Interest</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest
+	 * @generated
+	 */
+	EClass getLawfulByPublicInterest();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest#getPublicInterest <em>Public Interest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Public Interest</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest#getPublicInterest()
+	 * @see #getLawfulByPublicInterest()
+	 * @generated
+	 */
+	EReference getLawfulByPublicInterest_PublicInterest();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest <em>Lawful By Legitimate Interest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Lawful By Legitimate Interest</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest
+	 * @generated
+	 */
+	EClass getLawfulByLegitimateInterest();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest#getLegitimateInterest <em>Legitimate Interest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Legitimate Interest</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest#getLegitimateInterest()
+	 * @see #getLawfulByLegitimateInterest()
+	 * @generated
+	 */
+	EReference getLawfulByLegitimateInterest_LegitimateInterest();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation <em>Lawful By Legal Obligation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Lawful By Legal Obligation</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation
+	 * @generated
+	 */
+	EClass getLawfulByLegalObligation();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation#getLegalObligation <em>Legal Obligation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Legal Obligation</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation#getLegalObligation()
+	 * @see #getLawfulByLegalObligation()
+	 * @generated
+	 */
+	EReference getLawfulByLegalObligation_LegalObligation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest <em>Lawful By Vital Interest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Lawful By Vital Interest</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest
+	 * @generated
+	 */
+	EClass getLawfulByVitalInterest();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest#getVitalInterest <em>Vital Interest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Vital Interest</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest#getVitalInterest()
+	 * @see #getLawfulByVitalInterest()
+	 * @generated
+	 */
+	EReference getLawfulByVitalInterest_VitalInterest();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability <em>Linkability</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Linkability</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+	 * @generated
+	 */
+	EEnum getLinkability();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod <em>Collection Method</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Collection Method</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod
+	 * @generated
+	 */
+	EEnum getCollectionMethod();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration <em>Duration</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Duration</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration
+	 * @generated
+	 */
+	EEnum getDuration();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind <em>Pseudonym Kind</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Pseudonym Kind</em>'.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind
+	 * @generated
+	 */
+	EEnum getPseudonymKind();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	pdp4engReqGDPRFactory getpdp4engReqGDPRFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessRequirementImpl <em>Process Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getProcessRequirement()
+		 * @generated
+		 */
+		EClass PROCESS_REQUIREMENT = eINSTANCE.getProcessRequirement();
+
+		/**
+		 * The meta object literal for the '<em><b>Requester</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PROCESS_REQUIREMENT__REQUESTER = eINSTANCE.getProcessRequirement_Requester();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.StakeholderImpl <em>Stakeholder</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.StakeholderImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getStakeholder()
+		 * @generated
+		 */
+		EClass STAKEHOLDER = eINSTANCE.getStakeholder();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Named Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STAKEHOLDER__BASE_NAMED_ELEMENT = eINSTANCE.getStakeholder_Base_NamedElement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalDataRequirementImpl <em>Personal Data Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalDataRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPersonalDataRequirement()
+		 * @generated
+		 */
+		EClass PERSONAL_DATA_REQUIREMENT = eINSTANCE.getPersonalDataRequirement();
+
+		/**
+		 * The meta object literal for the '<em><b>Source</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PERSONAL_DATA_REQUIREMENT__SOURCE = eINSTANCE.getPersonalDataRequirement_Source();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GDPRPrincipleImpl <em>GDPR Principle</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GDPRPrincipleImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getGDPRPrinciple()
+		 * @generated
+		 */
+		EClass GDPR_PRINCIPLE = eINSTANCE.getGDPRPrinciple();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Named Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference GDPR_PRINCIPLE__BASE_NAMED_ELEMENT = eINSTANCE.getGDPRPrinciple_Base_NamedElement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessPrincipleImpl <em>Process Principle</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ProcessPrincipleImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getProcessPrinciple()
+		 * @generated
+		 */
+		EClass PROCESS_PRINCIPLE = eINSTANCE.getProcessPrinciple();
+
+		/**
+		 * The meta object literal for the '<em><b>Process</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PROCESS_PRINCIPLE__PROCESS = eINSTANCE.getProcessPrinciple_Process();
+
+		/**
+		 * The meta object literal for the '<em><b>Data Subject</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PROCESS_PRINCIPLE__DATA_SUBJECT = eINSTANCE.getProcessPrinciple_DataSubject();
+
+		/**
+		 * The meta object literal for the '<em><b>Personal Data</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PROCESS_PRINCIPLE__PERSONAL_DATA = eINSTANCE.getProcessPrinciple_PersonalData();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposePersonalDataPrincipleImpl <em>Purpose Personal Data Principle</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposePersonalDataPrincipleImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPurposePersonalDataPrinciple()
+		 * @generated
+		 */
+		EClass PURPOSE_PERSONAL_DATA_PRINCIPLE = eINSTANCE.getPurposePersonalDataPrinciple();
+
+		/**
+		 * The meta object literal for the '<em><b>Purpose</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PURPOSE_PERSONAL_DATA_PRINCIPLE__PURPOSE = eINSTANCE.getPurposePersonalDataPrinciple_Purpose();
+
+		/**
+		 * The meta object literal for the '<em><b>Personal Data</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PURPOSE_PERSONAL_DATA_PRINCIPLE__PERSONAL_DATA = eINSTANCE.getPurposePersonalDataPrinciple_PersonalData();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataMinimisationImpl <em>Data Minimisation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataMinimisationImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataMinimisation()
+		 * @generated
+		 */
+		EClass DATA_MINIMISATION = eINSTANCE.getDataMinimisation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposeLimitationImpl <em>Purpose Limitation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PurposeLimitationImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPurposeLimitation()
+		 * @generated
+		 */
+		EClass PURPOSE_LIMITATION = eINSTANCE.getPurposeLimitation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AccuracyImpl <em>Accuracy</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AccuracyImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAccuracy()
+		 * @generated
+		 */
+		EClass ACCURACY = eINSTANCE.getAccuracy();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.StorageLimitationImpl <em>Storage Limitation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.StorageLimitationImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getStorageLimitation()
+		 * @generated
+		 */
+		EClass STORAGE_LIMITATION = eINSTANCE.getStorageLimitation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulImpl <em>Lawful</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawful()
+		 * @generated
+		 */
+		EClass LAWFUL = eINSTANCE.getLawful();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.FairlyImpl <em>Fairly</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.FairlyImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getFairly()
+		 * @generated
+		 */
+		EClass FAIRLY = eINSTANCE.getFairly();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.TransparencyImpl <em>Transparency</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.TransparencyImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getTransparency()
+		 * @generated
+		 */
+		EClass TRANSPARENCY = eINSTANCE.getTransparency();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.SecuritySafetyImpl <em>Security Safety</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.SecuritySafetyImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getSecuritySafety()
+		 * @generated
+		 */
+		EClass SECURITY_SAFETY = eINSTANCE.getSecuritySafety();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.RelatedToImpl <em>Related To</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.RelatedToImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getRelatedTo()
+		 * @generated
+		 */
+		EClass RELATED_TO = eINSTANCE.getRelatedTo();
+
+		/**
+		 * The meta object literal for the '<em><b>Sensitive</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute RELATED_TO__SENSITIVE = eINSTANCE.getRelatedTo_Sensitive();
+
+		/**
+		 * The meta object literal for the '<em><b>Linkability</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute RELATED_TO__LINKABILITY = eINSTANCE.getRelatedTo_Linkability();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute RELATED_TO__COLLECTION = eINSTANCE.getRelatedTo_Collection();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference RELATED_TO__BASE_ELEMENT = eINSTANCE.getRelatedTo_Base_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableAtImpl <em>Available At</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableAtImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAvailableAt()
+		 * @generated
+		 */
+		EClass AVAILABLE_AT = eINSTANCE.getAvailableAt();
+
+		/**
+		 * The meta object literal for the '<em><b>Duration</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AVAILABLE_AT__DURATION = eINSTANCE.getAvailableAt_Duration();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AVAILABLE_AT__BASE_ELEMENT = eINSTANCE.getAvailableAt_Base_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DerivedFromImpl <em>Derived From</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DerivedFromImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDerivedFrom()
+		 * @generated
+		 */
+		EClass DERIVED_FROM = eINSTANCE.getDerivedFrom();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DERIVED_FROM__BASE_ELEMENT = eINSTANCE.getDerivedFrom_Base_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRequirementImpl <em>Data Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataRequirement()
+		 * @generated
+		 */
+		EClass DATA_REQUIREMENT = eINSTANCE.getDataRequirement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkableImpl <em>Linkable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkableImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLinkable()
+		 * @generated
+		 */
+		EClass LINKABLE = eINSTANCE.getLinkable();
+
+		/**
+		 * The meta object literal for the '<em><b>Duration</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute LINKABLE__DURATION = eINSTANCE.getLinkable_Duration();
+
+		/**
+		 * The meta object literal for the '<em><b>Linkability</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute LINKABLE__LINKABILITY = eINSTANCE.getLinkable_Linkability();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LINKABLE__BASE_ELEMENT = eINSTANCE.getLinkable_Base_Element();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GeneratedRequirementsImpl <em>Generated Requirements</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.GeneratedRequirementsImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getGeneratedRequirements()
+		 * @generated
+		 */
+		EClass GENERATED_REQUIREMENTS = eINSTANCE.getGeneratedRequirements();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference GENERATED_REQUIREMENTS__BASE_PACKAGE = eINSTANCE.getGeneratedRequirements_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataFlowRequirementImpl <em>Data Flow Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataFlowRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataFlowRequirement()
+		 * @generated
+		 */
+		EClass DATA_FLOW_REQUIREMENT = eINSTANCE.getDataFlowRequirement();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Activity</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_FLOW_REQUIREMENT__BASE_ACTIVITY = eINSTANCE.getDataFlowRequirement_Base_Activity();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataSubjectsImpl <em>Data Subjects</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataSubjectsImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataSubjects()
+		 * @generated
+		 */
+		EClass DATA_SUBJECTS = eINSTANCE.getDataSubjects();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_SUBJECTS__BASE_PACKAGE = eINSTANCE.getDataSubjects_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRequirementsImpl <em>Data Requirements</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRequirementsImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataRequirements()
+		 * @generated
+		 */
+		EClass DATA_REQUIREMENTS = eINSTANCE.getDataRequirements();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_REQUIREMENTS__BASE_PACKAGE = eINSTANCE.getDataRequirements_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationImpl <em>Available Information</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAvailableInformation()
+		 * @generated
+		 */
+		EClass AVAILABLE_INFORMATION = eINSTANCE.getAvailableInformation();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AVAILABLE_INFORMATION__BASE_PACKAGE = eINSTANCE.getAvailableInformation_Base_Package();
+
+		/**
+		 * The meta object literal for the '<em><b>Concerns</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AVAILABLE_INFORMATION__CONCERNS = eINSTANCE.getAvailableInformation_Concerns();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationImpl <em>Personal Information</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPersonalInformation()
+		 * @generated
+		 */
+		EClass PERSONAL_INFORMATION = eINSTANCE.getPersonalInformation();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PERSONAL_INFORMATION__BASE_PACKAGE = eINSTANCE.getPersonalInformation_Base_Package();
+
+		/**
+		 * The meta object literal for the '<em><b>Concerns</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PERSONAL_INFORMATION__CONCERNS = eINSTANCE.getPersonalInformation_Concerns();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationContainerImpl <em>Available Information Container</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AvailableInformationContainerImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAvailableInformationContainer()
+		 * @generated
+		 */
+		EClass AVAILABLE_INFORMATION_CONTAINER = eINSTANCE.getAvailableInformationContainer();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AVAILABLE_INFORMATION_CONTAINER__BASE_PACKAGE = eINSTANCE.getAvailableInformationContainer_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationContainerImpl <em>Personal Information Container</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PersonalInformationContainerImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPersonalInformationContainer()
+		 * @generated
+		 */
+		EClass PERSONAL_INFORMATION_CONTAINER = eINSTANCE.getPersonalInformationContainer();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PERSONAL_INFORMATION_CONTAINER__BASE_PACKAGE = eINSTANCE.getPersonalInformationContainer_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.UnlinkabilityRequirementImpl <em>Unlinkability Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.UnlinkabilityRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getUnlinkabilityRequirement()
+		 * @generated
+		 */
+		EClass UNLINKABILITY_REQUIREMENT = eINSTANCE.getUnlinkabilityRequirement();
+
+		/**
+		 * The meta object literal for the '<em><b>Linkability</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute UNLINKABILITY_REQUIREMENT__LINKABILITY = eINSTANCE.getUnlinkabilityRequirement_Linkability();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PrivacyRequirementImpl <em>Privacy Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PrivacyRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPrivacyRequirement()
+		 * @generated
+		 */
+		EClass PRIVACY_REQUIREMENT = eINSTANCE.getPrivacyRequirement();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Named Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVACY_REQUIREMENT__BASE_NAMED_ELEMENT = eINSTANCE.getPrivacyRequirement_Base_NamedElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Data Subject</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVACY_REQUIREMENT__DATA_SUBJECT = eINSTANCE.getPrivacyRequirement_DataSubject();
+
+		/**
+		 * The meta object literal for the '<em><b>Counterstakeholders</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVACY_REQUIREMENT__COUNTERSTAKEHOLDERS = eINSTANCE.getPrivacyRequirement_Counterstakeholders();
+
+		/**
+		 * The meta object literal for the '<em><b>Personal Data</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVACY_REQUIREMENT__PERSONAL_DATA = eINSTANCE.getPrivacyRequirement_PersonalData();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataUnlinkabilityRequirementImpl <em>Data Unlinkability Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataUnlinkabilityRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataUnlinkabilityRequirement()
+		 * @generated
+		 */
+		EClass DATA_UNLINKABILITY_REQUIREMENT = eINSTANCE.getDataUnlinkabilityRequirement();
+
+		/**
+		 * The meta object literal for the '<em><b>Links</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_UNLINKABILITY_REQUIREMENT__LINKS = eINSTANCE.getDataUnlinkabilityRequirement_Links();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ControlersImpl <em>Controlers</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.ControlersImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getControlers()
+		 * @generated
+		 */
+		EClass CONTROLERS = eINSTANCE.getControlers();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CONTROLERS__BASE_PACKAGE = eINSTANCE.getControlers_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkImpl <em>Link</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LinkImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLink()
+		 * @generated
+		 */
+		EClass LINK = eINSTANCE.getLink();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Named Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LINK__BASE_NAMED_ELEMENT = eINSTANCE.getLink_Base_NamedElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Linkability</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute LINK__LINKABILITY = eINSTANCE.getLink_Linkability();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.UndectabilityRequirementImpl <em>Undectability Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.UndectabilityRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getUndectabilityRequirement()
+		 * @generated
+		 */
+		EClass UNDECTABILITY_REQUIREMENT = eINSTANCE.getUndectabilityRequirement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PseudonimityRequirementImpl <em>Pseudonimity Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.PseudonimityRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPseudonimityRequirement()
+		 * @generated
+		 */
+		EClass PSEUDONIMITY_REQUIREMENT = eINSTANCE.getPseudonimityRequirement();
+
+		/**
+		 * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PSEUDONIMITY_REQUIREMENT__KIND = eINSTANCE.getPseudonimityRequirement_Kind();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AnanomityRequirementImpl <em>Ananomity Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.AnanomityRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getAnanomityRequirement()
+		 * @generated
+		 */
+		EClass ANANOMITY_REQUIREMENT = eINSTANCE.getAnanomityRequirement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRecordRequirementImpl <em>Data Record Requirement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.DataRecordRequirementImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDataRecordRequirement()
+		 * @generated
+		 */
+		EClass DATA_RECORD_REQUIREMENT = eINSTANCE.getDataRecordRequirement();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Data Store Node</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_RECORD_REQUIREMENT__BASE_DATA_STORE_NODE = eINSTANCE.getDataRecordRequirement_Base_DataStoreNode();
+
+		/**
+		 * The meta object literal for the '<em><b>Data List</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_RECORD_REQUIREMENT__DATA_LIST = eINSTANCE.getDataRecordRequirement_DataList();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.FunctionalRequirementsImpl <em>Functional Requirements</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.FunctionalRequirementsImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getFunctionalRequirements()
+		 * @generated
+		 */
+		EClass FUNCTIONAL_REQUIREMENTS = eINSTANCE.getFunctionalRequirements();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE = eINSTANCE.getFunctionalRequirements_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.NonFunctionalRequirementsImpl <em>Non Functional Requirements</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.NonFunctionalRequirementsImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getNonFunctionalRequirements()
+		 * @generated
+		 */
+		EClass NON_FUNCTIONAL_REQUIREMENTS = eINSTANCE.getNonFunctionalRequirements();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference NON_FUNCTIONAL_REQUIREMENTS__BASE_PACKAGE = eINSTANCE.getNonFunctionalRequirements_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByConsentImpl <em>Lawful By Consent</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByConsentImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByConsent()
+		 * @generated
+		 */
+		EClass LAWFUL_BY_CONSENT = eINSTANCE.getLawfulByConsent();
+
+		/**
+		 * The meta object literal for the '<em><b>Consent</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LAWFUL_BY_CONSENT__CONSENT = eINSTANCE.getLawfulByConsent_Consent();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByContractImpl <em>Lawful By Contract</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByContractImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByContract()
+		 * @generated
+		 */
+		EClass LAWFUL_BY_CONTRACT = eINSTANCE.getLawfulByContract();
+
+		/**
+		 * The meta object literal for the '<em><b>Contract</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LAWFUL_BY_CONTRACT__CONTRACT = eINSTANCE.getLawfulByContract_Contract();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByPublicInterestImpl <em>Lawful By Public Interest</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByPublicInterestImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByPublicInterest()
+		 * @generated
+		 */
+		EClass LAWFUL_BY_PUBLIC_INTEREST = eINSTANCE.getLawfulByPublicInterest();
+
+		/**
+		 * The meta object literal for the '<em><b>Public Interest</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LAWFUL_BY_PUBLIC_INTEREST__PUBLIC_INTEREST = eINSTANCE.getLawfulByPublicInterest_PublicInterest();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegitimateInterestImpl <em>Lawful By Legitimate Interest</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegitimateInterestImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByLegitimateInterest()
+		 * @generated
+		 */
+		EClass LAWFUL_BY_LEGITIMATE_INTEREST = eINSTANCE.getLawfulByLegitimateInterest();
+
+		/**
+		 * The meta object literal for the '<em><b>Legitimate Interest</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LAWFUL_BY_LEGITIMATE_INTEREST__LEGITIMATE_INTEREST = eINSTANCE.getLawfulByLegitimateInterest_LegitimateInterest();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegalObligationImpl <em>Lawful By Legal Obligation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByLegalObligationImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByLegalObligation()
+		 * @generated
+		 */
+		EClass LAWFUL_BY_LEGAL_OBLIGATION = eINSTANCE.getLawfulByLegalObligation();
+
+		/**
+		 * The meta object literal for the '<em><b>Legal Obligation</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LAWFUL_BY_LEGAL_OBLIGATION__LEGAL_OBLIGATION = eINSTANCE.getLawfulByLegalObligation_LegalObligation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByVitalInterestImpl <em>Lawful By Vital Interest</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.LawfulByVitalInterestImpl
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLawfulByVitalInterest()
+		 * @generated
+		 */
+		EClass LAWFUL_BY_VITAL_INTEREST = eINSTANCE.getLawfulByVitalInterest();
+
+		/**
+		 * The meta object literal for the '<em><b>Vital Interest</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference LAWFUL_BY_VITAL_INTEREST__VITAL_INTEREST = eINSTANCE.getLawfulByVitalInterest_VitalInterest();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability <em>Linkability</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkability
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getLinkability()
+		 * @generated
+		 */
+		EEnum LINKABILITY = eINSTANCE.getLinkability();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod <em>Collection Method</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.CollectionMethod
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getCollectionMethod()
+		 * @generated
+		 */
+		EEnum COLLECTION_METHOD = eINSTANCE.getCollectionMethod();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration <em>Duration</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Duration
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getDuration()
+		 * @generated
+		 */
+		EEnum DURATION = eINSTANCE.getDuration();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind <em>Pseudonym Kind</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonymKind
+		 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.impl.pdp4engReqGDPRPackageImpl#getPseudonymKind()
+		 * @generated
+		 */
+		EEnum PSEUDONYM_KIND = eINSTANCE.getPseudonymKind();
+
+	}
+
+} //pdp4engReqGDPRPackage
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/util/pdp4engReqGDPRAdapterFactory.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/util/pdp4engReqGDPRAdapterFactory.java
new file mode 100644
index 0000000..ce835f8
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/util/pdp4engReqGDPRAdapterFactory.java
@@ -0,0 +1,965 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Data;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage
+ * @generated
+ */
+public class pdp4engReqGDPRAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static pdp4engReqGDPRPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public pdp4engReqGDPRAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = pdp4engReqGDPRPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected pdp4engReqGDPRSwitch<Adapter> modelSwitch =
+		new pdp4engReqGDPRSwitch<Adapter>() {
+			@Override
+			public Adapter caseProcessRequirement(ProcessRequirement object) {
+				return createProcessRequirementAdapter();
+			}
+			@Override
+			public Adapter caseStakeholder(Stakeholder object) {
+				return createStakeholderAdapter();
+			}
+			@Override
+			public Adapter casePersonalDataRequirement(PersonalDataRequirement object) {
+				return createPersonalDataRequirementAdapter();
+			}
+			@Override
+			public Adapter caseGDPRPrinciple(GDPRPrinciple object) {
+				return createGDPRPrincipleAdapter();
+			}
+			@Override
+			public Adapter caseProcessPrinciple(ProcessPrinciple object) {
+				return createProcessPrincipleAdapter();
+			}
+			@Override
+			public Adapter casePurposePersonalDataPrinciple(PurposePersonalDataPrinciple object) {
+				return createPurposePersonalDataPrincipleAdapter();
+			}
+			@Override
+			public Adapter caseDataMinimisation(DataMinimisation object) {
+				return createDataMinimisationAdapter();
+			}
+			@Override
+			public Adapter casePurposeLimitation(PurposeLimitation object) {
+				return createPurposeLimitationAdapter();
+			}
+			@Override
+			public Adapter caseAccuracy(Accuracy object) {
+				return createAccuracyAdapter();
+			}
+			@Override
+			public Adapter caseStorageLimitation(StorageLimitation object) {
+				return createStorageLimitationAdapter();
+			}
+			@Override
+			public Adapter caseLawful(Lawful object) {
+				return createLawfulAdapter();
+			}
+			@Override
+			public Adapter caseFairly(Fairly object) {
+				return createFairlyAdapter();
+			}
+			@Override
+			public Adapter caseTransparency(Transparency object) {
+				return createTransparencyAdapter();
+			}
+			@Override
+			public Adapter caseSecuritySafety(SecuritySafety object) {
+				return createSecuritySafetyAdapter();
+			}
+			@Override
+			public Adapter caseRelatedTo(RelatedTo object) {
+				return createRelatedToAdapter();
+			}
+			@Override
+			public Adapter caseAvailableAt(AvailableAt object) {
+				return createAvailableAtAdapter();
+			}
+			@Override
+			public Adapter caseDerivedFrom(DerivedFrom object) {
+				return createDerivedFromAdapter();
+			}
+			@Override
+			public Adapter caseDataRequirement(DataRequirement object) {
+				return createDataRequirementAdapter();
+			}
+			@Override
+			public Adapter caseLinkable(Linkable object) {
+				return createLinkableAdapter();
+			}
+			@Override
+			public Adapter caseGeneratedRequirements(GeneratedRequirements object) {
+				return createGeneratedRequirementsAdapter();
+			}
+			@Override
+			public Adapter caseDataFlowRequirement(DataFlowRequirement object) {
+				return createDataFlowRequirementAdapter();
+			}
+			@Override
+			public Adapter caseDataSubjects(DataSubjects object) {
+				return createDataSubjectsAdapter();
+			}
+			@Override
+			public Adapter caseDataRequirements(DataRequirements object) {
+				return createDataRequirementsAdapter();
+			}
+			@Override
+			public Adapter caseAvailableInformation(AvailableInformation object) {
+				return createAvailableInformationAdapter();
+			}
+			@Override
+			public Adapter casePersonalInformation(PersonalInformation object) {
+				return createPersonalInformationAdapter();
+			}
+			@Override
+			public Adapter caseAvailableInformationContainer(AvailableInformationContainer object) {
+				return createAvailableInformationContainerAdapter();
+			}
+			@Override
+			public Adapter casePersonalInformationContainer(PersonalInformationContainer object) {
+				return createPersonalInformationContainerAdapter();
+			}
+			@Override
+			public Adapter caseUnlinkabilityRequirement(UnlinkabilityRequirement object) {
+				return createUnlinkabilityRequirementAdapter();
+			}
+			@Override
+			public Adapter casePrivacyRequirement(PrivacyRequirement object) {
+				return createPrivacyRequirementAdapter();
+			}
+			@Override
+			public Adapter caseDataUnlinkabilityRequirement(DataUnlinkabilityRequirement object) {
+				return createDataUnlinkabilityRequirementAdapter();
+			}
+			@Override
+			public Adapter caseControlers(Controlers object) {
+				return createControlersAdapter();
+			}
+			@Override
+			public Adapter caseLink(Link object) {
+				return createLinkAdapter();
+			}
+			@Override
+			public Adapter caseUndectabilityRequirement(UndectabilityRequirement object) {
+				return createUndectabilityRequirementAdapter();
+			}
+			@Override
+			public Adapter casePseudonimityRequirement(PseudonimityRequirement object) {
+				return createPseudonimityRequirementAdapter();
+			}
+			@Override
+			public Adapter caseAnanomityRequirement(AnanomityRequirement object) {
+				return createAnanomityRequirementAdapter();
+			}
+			@Override
+			public Adapter caseDataRecordRequirement(DataRecordRequirement object) {
+				return createDataRecordRequirementAdapter();
+			}
+			@Override
+			public Adapter caseFunctionalRequirements(FunctionalRequirements object) {
+				return createFunctionalRequirementsAdapter();
+			}
+			@Override
+			public Adapter caseNonFunctionalRequirements(NonFunctionalRequirements object) {
+				return createNonFunctionalRequirementsAdapter();
+			}
+			@Override
+			public Adapter caseLawfulByConsent(LawfulByConsent object) {
+				return createLawfulByConsentAdapter();
+			}
+			@Override
+			public Adapter caseLawfulByContract(LawfulByContract object) {
+				return createLawfulByContractAdapter();
+			}
+			@Override
+			public Adapter caseLawfulByPublicInterest(LawfulByPublicInterest object) {
+				return createLawfulByPublicInterestAdapter();
+			}
+			@Override
+			public Adapter caseLawfulByLegitimateInterest(LawfulByLegitimateInterest object) {
+				return createLawfulByLegitimateInterestAdapter();
+			}
+			@Override
+			public Adapter caseLawfulByLegalObligation(LawfulByLegalObligation object) {
+				return createLawfulByLegalObligationAdapter();
+			}
+			@Override
+			public Adapter caseLawfulByVitalInterest(LawfulByVitalInterest object) {
+				return createLawfulByVitalInterestAdapter();
+			}
+			@Override
+			public Adapter caseProcess(org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Process object) {
+				return createProcessAdapter();
+			}
+			@Override
+			public Adapter caseData(Data object) {
+				return createDataAdapter();
+			}
+			@Override
+			public Adapter casePersonalData(PersonalData object) {
+				return createPersonalDataAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement <em>Process Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessRequirement
+	 * @generated
+	 */
+	public Adapter createProcessRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder <em>Stakeholder</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Stakeholder
+	 * @generated
+	 */
+	public Adapter createStakeholderAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement <em>Personal Data Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalDataRequirement
+	 * @generated
+	 */
+	public Adapter createPersonalDataRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple <em>GDPR Principle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GDPRPrinciple
+	 * @generated
+	 */
+	public Adapter createGDPRPrincipleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple <em>Process Principle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.ProcessPrinciple
+	 * @generated
+	 */
+	public Adapter createProcessPrincipleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple <em>Purpose Personal Data Principle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposePersonalDataPrinciple
+	 * @generated
+	 */
+	public Adapter createPurposePersonalDataPrincipleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation <em>Data Minimisation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataMinimisation
+	 * @generated
+	 */
+	public Adapter createDataMinimisationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation <em>Purpose Limitation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PurposeLimitation
+	 * @generated
+	 */
+	public Adapter createPurposeLimitationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy <em>Accuracy</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Accuracy
+	 * @generated
+	 */
+	public Adapter createAccuracyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation <em>Storage Limitation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.StorageLimitation
+	 * @generated
+	 */
+	public Adapter createStorageLimitationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful <em>Lawful</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Lawful
+	 * @generated
+	 */
+	public Adapter createLawfulAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly <em>Fairly</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Fairly
+	 * @generated
+	 */
+	public Adapter createFairlyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency <em>Transparency</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Transparency
+	 * @generated
+	 */
+	public Adapter createTransparencyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety <em>Security Safety</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.SecuritySafety
+	 * @generated
+	 */
+	public Adapter createSecuritySafetyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo <em>Related To</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.RelatedTo
+	 * @generated
+	 */
+	public Adapter createRelatedToAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt <em>Available At</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableAt
+	 * @generated
+	 */
+	public Adapter createAvailableAtAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom <em>Derived From</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DerivedFrom
+	 * @generated
+	 */
+	public Adapter createDerivedFromAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirement <em>Data Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirement
+	 * @generated
+	 */
+	public Adapter createDataRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable <em>Linkable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Linkable
+	 * @generated
+	 */
+	public Adapter createLinkableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements <em>Generated Requirements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.GeneratedRequirements
+	 * @generated
+	 */
+	public Adapter createGeneratedRequirementsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement <em>Data Flow Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataFlowRequirement
+	 * @generated
+	 */
+	public Adapter createDataFlowRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects <em>Data Subjects</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataSubjects
+	 * @generated
+	 */
+	public Adapter createDataSubjectsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements <em>Data Requirements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRequirements
+	 * @generated
+	 */
+	public Adapter createDataRequirementsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation <em>Available Information</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformation
+	 * @generated
+	 */
+	public Adapter createAvailableInformationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation <em>Personal Information</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformation
+	 * @generated
+	 */
+	public Adapter createPersonalInformationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer <em>Available Information Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AvailableInformationContainer
+	 * @generated
+	 */
+	public Adapter createAvailableInformationContainerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer <em>Personal Information Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PersonalInformationContainer
+	 * @generated
+	 */
+	public Adapter createPersonalInformationContainerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement <em>Unlinkability Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UnlinkabilityRequirement
+	 * @generated
+	 */
+	public Adapter createUnlinkabilityRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement <em>Privacy Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PrivacyRequirement
+	 * @generated
+	 */
+	public Adapter createPrivacyRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataUnlinkabilityRequirement <em>Data Unlinkability Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataUnlinkabilityRequirement
+	 * @generated
+	 */
+	public Adapter createDataUnlinkabilityRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers <em>Controlers</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Controlers
+	 * @generated
+	 */
+	public Adapter createControlersAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link <em>Link</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.Link
+	 * @generated
+	 */
+	public Adapter createLinkAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UndectabilityRequirement <em>Undectability Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.UndectabilityRequirement
+	 * @generated
+	 */
+	public Adapter createUndectabilityRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement <em>Pseudonimity Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.PseudonimityRequirement
+	 * @generated
+	 */
+	public Adapter createPseudonimityRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AnanomityRequirement <em>Ananomity Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.AnanomityRequirement
+	 * @generated
+	 */
+	public Adapter createAnanomityRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement <em>Data Record Requirement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.DataRecordRequirement
+	 * @generated
+	 */
+	public Adapter createDataRecordRequirementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements <em>Functional Requirements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.FunctionalRequirements
+	 * @generated
+	 */
+	public Adapter createFunctionalRequirementsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements <em>Non Functional Requirements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.NonFunctionalRequirements
+	 * @generated
+	 */
+	public Adapter createNonFunctionalRequirementsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent <em>Lawful By Consent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByConsent
+	 * @generated
+	 */
+	public Adapter createLawfulByConsentAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract <em>Lawful By Contract</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByContract
+	 * @generated
+	 */
+	public Adapter createLawfulByContractAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest <em>Lawful By Public Interest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByPublicInterest
+	 * @generated
+	 */
+	public Adapter createLawfulByPublicInterestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest <em>Lawful By Legitimate Interest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegitimateInterest
+	 * @generated
+	 */
+	public Adapter createLawfulByLegitimateInterestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation <em>Lawful By Legal Obligation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByLegalObligation
+	 * @generated
+	 */
+	public Adapter createLawfulByLegalObligationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest <em>Lawful By Vital Interest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.LawfulByVitalInterest
+	 * @generated
+	 */
+	public Adapter createLawfulByVitalInterestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Process <em>Process</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Process
+	 * @generated
+	 */
+	public Adapter createProcessAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Data <em>Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Data
+	 * @generated
+	 */
+	public Adapter createDataAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData <em>Personal Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData
+	 * @generated
+	 */
+	public Adapter createPersonalDataAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //pdp4engReqGDPRAdapterFactory
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/util/pdp4engReqGDPRSwitch.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/util/pdp4engReqGDPRSwitch.java
new file mode 100644
index 0000000..c272dde
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.profile/src/org/eclipse/papyrus/pdp4eng/req/profile/pdp4engReqGDPR/util/pdp4engReqGDPRSwitch.java
@@ -0,0 +1,1122 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Data;
+import org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.PersonalData;
+
+import org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.pdp4eng.req.profile.pdp4engReqGDPR.pdp4engReqGDPRPackage
+ * @generated
+ */
+public class pdp4engReqGDPRSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static pdp4engReqGDPRPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public pdp4engReqGDPRSwitch() {
+		if (modelPackage == null) {
+			modelPackage = pdp4engReqGDPRPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case pdp4engReqGDPRPackage.PROCESS_REQUIREMENT: {
+				ProcessRequirement processRequirement = (ProcessRequirement)theEObject;
+				T result = caseProcessRequirement(processRequirement);
+				if (result == null) result = caseProcess(processRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.STAKEHOLDER: {
+				Stakeholder stakeholder = (Stakeholder)theEObject;
+				T result = caseStakeholder(stakeholder);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.PERSONAL_DATA_REQUIREMENT: {
+				PersonalDataRequirement personalDataRequirement = (PersonalDataRequirement)theEObject;
+				T result = casePersonalDataRequirement(personalDataRequirement);
+				if (result == null) result = casePersonalData(personalDataRequirement);
+				if (result == null) result = caseData(personalDataRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.GDPR_PRINCIPLE: {
+				GDPRPrinciple gdprPrinciple = (GDPRPrinciple)theEObject;
+				T result = caseGDPRPrinciple(gdprPrinciple);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.PROCESS_PRINCIPLE: {
+				ProcessPrinciple processPrinciple = (ProcessPrinciple)theEObject;
+				T result = caseProcessPrinciple(processPrinciple);
+				if (result == null) result = caseGDPRPrinciple(processPrinciple);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.PURPOSE_PERSONAL_DATA_PRINCIPLE: {
+				PurposePersonalDataPrinciple purposePersonalDataPrinciple = (PurposePersonalDataPrinciple)theEObject;
+				T result = casePurposePersonalDataPrinciple(purposePersonalDataPrinciple);
+				if (result == null) result = caseGDPRPrinciple(purposePersonalDataPrinciple);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.DATA_MINIMISATION: {
+				DataMinimisation dataMinimisation = (DataMinimisation)theEObject;
+				T result = caseDataMinimisation(dataMinimisation);
+				if (result == null) result = casePurposePersonalDataPrinciple(dataMinimisation);
+				if (result == null) result = caseGDPRPrinciple(dataMinimisation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.PURPOSE_LIMITATION: {
+				PurposeLimitation purposeLimitation = (PurposeLimitation)theEObject;
+				T result = casePurposeLimitation(purposeLimitation);
+				if (result == null) result = casePurposePersonalDataPrinciple(purposeLimitation);
+				if (result == null) result = caseGDPRPrinciple(purposeLimitation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.ACCURACY: {
+				Accuracy accuracy = (Accuracy)theEObject;
+				T result = caseAccuracy(accuracy);
+				if (result == null) result = casePurposePersonalDataPrinciple(accuracy);
+				if (result == null) result = caseGDPRPrinciple(accuracy);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.STORAGE_LIMITATION: {
+				StorageLimitation storageLimitation = (StorageLimitation)theEObject;
+				T result = caseStorageLimitation(storageLimitation);
+				if (result == null) result = casePurposePersonalDataPrinciple(storageLimitation);
+				if (result == null) result = caseGDPRPrinciple(storageLimitation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.LAWFUL: {
+				Lawful lawful = (Lawful)theEObject;
+				T result = caseLawful(lawful);
+				if (result == null) result = caseProcessPrinciple(lawful);
+				if (result == null) result = caseGDPRPrinciple(lawful);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.FAIRLY: {
+				Fairly fairly = (Fairly)theEObject;
+				T result = caseFairly(fairly);
+				if (result == null) result = caseProcessPrinciple(fairly);
+				if (result == null) result = caseGDPRPrinciple(fairly);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.TRANSPARENCY: {
+				Transparency transparency = (Transparency)theEObject;
+				T result = caseTransparency(transparency);
+				if (result == null) result = caseProcessPrinciple(transparency);
+				if (result == null) result = caseGDPRPrinciple(transparency);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.SECURITY_SAFETY: {
+				SecuritySafety securitySafety = (SecuritySafety)theEObject;
+				T result = caseSecuritySafety(securitySafety);
+				if (result == null) result = caseProcessPrinciple(securitySafety);
+				if (result == null) result = caseGDPRPrinciple(securitySafety);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.RELATED_TO: {
+				RelatedTo relatedTo = (RelatedTo)theEObject;
+				T result = caseRelatedTo(relatedTo);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.AVAILABLE_AT: {
+				AvailableAt availableAt = (AvailableAt)theEObject;
+				T result = caseAvailableAt(availableAt);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.DERIVED_FROM: {
+				DerivedFrom derivedFrom = (DerivedFrom)theEObject;
+				T result = caseDerivedFrom(derivedFrom);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.DATA_REQUIREMENT: {
+				DataRequirement dataRequirement = (DataRequirement)theEObject;
+				T result = caseDataRequirement(dataRequirement);
+				if (result == null) result = caseData(dataRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.LINKABLE: {
+				Linkable linkable = (Linkable)theEObject;
+				T result = caseLinkable(linkable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.GENERATED_REQUIREMENTS: {
+				GeneratedRequirements generatedRequirements = (GeneratedRequirements)theEObject;
+				T result = caseGeneratedRequirements(generatedRequirements);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.DATA_FLOW_REQUIREMENT: {
+				DataFlowRequirement dataFlowRequirement = (DataFlowRequirement)theEObject;
+				T result = caseDataFlowRequirement(dataFlowRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.DATA_SUBJECTS: {
+				DataSubjects dataSubjects = (DataSubjects)theEObject;
+				T result = caseDataSubjects(dataSubjects);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.DATA_REQUIREMENTS: {
+				DataRequirements dataRequirements = (DataRequirements)theEObject;
+				T result = caseDataRequirements(dataRequirements);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION: {
+				AvailableInformation availableInformation = (AvailableInformation)theEObject;
+				T result = caseAvailableInformation(availableInformation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION: {
+				PersonalInformation personalInformation = (PersonalInformation)theEObject;
+				T result = casePersonalInformation(personalInformation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.AVAILABLE_INFORMATION_CONTAINER: {
+				AvailableInformationContainer availableInformationContainer = (AvailableInformationContainer)theEObject;
+				T result = caseAvailableInformationContainer(availableInformationContainer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.PERSONAL_INFORMATION_CONTAINER: {
+				PersonalInformationContainer personalInformationContainer = (PersonalInformationContainer)theEObject;
+				T result = casePersonalInformationContainer(personalInformationContainer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.UNLINKABILITY_REQUIREMENT: {
+				UnlinkabilityRequirement unlinkabilityRequirement = (UnlinkabilityRequirement)theEObject;
+				T result = caseUnlinkabilityRequirement(unlinkabilityRequirement);
+				if (result == null) result = casePrivacyRequirement(unlinkabilityRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.PRIVACY_REQUIREMENT: {
+				PrivacyRequirement privacyRequirement = (PrivacyRequirement)theEObject;
+				T result = casePrivacyRequirement(privacyRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.DATA_UNLINKABILITY_REQUIREMENT: {
+				DataUnlinkabilityRequirement dataUnlinkabilityRequirement = (DataUnlinkabilityRequirement)theEObject;
+				T result = caseDataUnlinkabilityRequirement(dataUnlinkabilityRequirement);
+				if (result == null) result = caseUnlinkabilityRequirement(dataUnlinkabilityRequirement);
+				if (result == null) result = casePrivacyRequirement(dataUnlinkabilityRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.CONTROLERS: {
+				Controlers controlers = (Controlers)theEObject;
+				T result = caseControlers(controlers);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.LINK: {
+				Link link = (Link)theEObject;
+				T result = caseLink(link);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.UNDECTABILITY_REQUIREMENT: {
+				UndectabilityRequirement undectabilityRequirement = (UndectabilityRequirement)theEObject;
+				T result = caseUndectabilityRequirement(undectabilityRequirement);
+				if (result == null) result = casePrivacyRequirement(undectabilityRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.PSEUDONIMITY_REQUIREMENT: {
+				PseudonimityRequirement pseudonimityRequirement = (PseudonimityRequirement)theEObject;
+				T result = casePseudonimityRequirement(pseudonimityRequirement);
+				if (result == null) result = casePrivacyRequirement(pseudonimityRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.ANANOMITY_REQUIREMENT: {
+				AnanomityRequirement ananomityRequirement = (AnanomityRequirement)theEObject;
+				T result = caseAnanomityRequirement(ananomityRequirement);
+				if (result == null) result = caseUnlinkabilityRequirement(ananomityRequirement);
+				if (result == null) result = casePrivacyRequirement(ananomityRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.DATA_RECORD_REQUIREMENT: {
+				DataRecordRequirement dataRecordRequirement = (DataRecordRequirement)theEObject;
+				T result = caseDataRecordRequirement(dataRecordRequirement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.FUNCTIONAL_REQUIREMENTS: {
+				FunctionalRequirements functionalRequirements = (FunctionalRequirements)theEObject;
+				T result = caseFunctionalRequirements(functionalRequirements);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.NON_FUNCTIONAL_REQUIREMENTS: {
+				NonFunctionalRequirements nonFunctionalRequirements = (NonFunctionalRequirements)theEObject;
+				T result = caseNonFunctionalRequirements(nonFunctionalRequirements);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONSENT: {
+				LawfulByConsent lawfulByConsent = (LawfulByConsent)theEObject;
+				T result = caseLawfulByConsent(lawfulByConsent);
+				if (result == null) result = caseLawful(lawfulByConsent);
+				if (result == null) result = caseProcessPrinciple(lawfulByConsent);
+				if (result == null) result = caseGDPRPrinciple(lawfulByConsent);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.LAWFUL_BY_CONTRACT: {
+				LawfulByContract lawfulByContract = (LawfulByContract)theEObject;
+				T result = caseLawfulByContract(lawfulByContract);
+				if (result == null) result = caseLawful(lawfulByContract);
+				if (result == null) result = caseProcessPrinciple(lawfulByContract);
+				if (result == null) result = caseGDPRPrinciple(lawfulByContract);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.LAWFUL_BY_PUBLIC_INTEREST: {
+				LawfulByPublicInterest lawfulByPublicInterest = (LawfulByPublicInterest)theEObject;
+				T result = caseLawfulByPublicInterest(lawfulByPublicInterest);
+				if (result == null) result = caseLawful(lawfulByPublicInterest);
+				if (result == null) result = caseProcessPrinciple(lawfulByPublicInterest);
+				if (result == null) result = caseGDPRPrinciple(lawfulByPublicInterest);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGITIMATE_INTEREST: {
+				LawfulByLegitimateInterest lawfulByLegitimateInterest = (LawfulByLegitimateInterest)theEObject;
+				T result = caseLawfulByLegitimateInterest(lawfulByLegitimateInterest);
+				if (result == null) result = caseLawful(lawfulByLegitimateInterest);
+				if (result == null) result = caseProcessPrinciple(lawfulByLegitimateInterest);
+				if (result == null) result = caseGDPRPrinciple(lawfulByLegitimateInterest);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.LAWFUL_BY_LEGAL_OBLIGATION: {
+				LawfulByLegalObligation lawfulByLegalObligation = (LawfulByLegalObligation)theEObject;
+				T result = caseLawfulByLegalObligation(lawfulByLegalObligation);
+				if (result == null) result = caseLawful(lawfulByLegalObligation);
+				if (result == null) result = caseProcessPrinciple(lawfulByLegalObligation);
+				if (result == null) result = caseGDPRPrinciple(lawfulByLegalObligation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case pdp4engReqGDPRPackage.LAWFUL_BY_VITAL_INTEREST: {
+				LawfulByVitalInterest lawfulByVitalInterest = (LawfulByVitalInterest)theEObject;
+				T result = caseLawfulByVitalInterest(lawfulByVitalInterest);
+				if (result == null) result = caseLawful(lawfulByVitalInterest);
+				if (result == null) result = caseProcessPrinciple(lawfulByVitalInterest);
+				if (result == null) result = caseGDPRPrinciple(lawfulByVitalInterest);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Process Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Process Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseProcessRequirement(ProcessRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Stakeholder</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Stakeholder</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStakeholder(Stakeholder object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Personal Data Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Personal Data Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePersonalDataRequirement(PersonalDataRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>GDPR Principle</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>GDPR Principle</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGDPRPrinciple(GDPRPrinciple object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Process Principle</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Process Principle</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseProcessPrinciple(ProcessPrinciple object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Purpose Personal Data Principle</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Purpose Personal Data Principle</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePurposePersonalDataPrinciple(PurposePersonalDataPrinciple object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Minimisation</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Minimisation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataMinimisation(DataMinimisation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Purpose Limitation</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Purpose Limitation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePurposeLimitation(PurposeLimitation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Accuracy</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Accuracy</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAccuracy(Accuracy object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Storage Limitation</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Storage Limitation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStorageLimitation(StorageLimitation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Lawful</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Lawful</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLawful(Lawful object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Fairly</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Fairly</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFairly(Fairly object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Transparency</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Transparency</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTransparency(Transparency object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Security Safety</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Security Safety</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSecuritySafety(SecuritySafety object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Related To</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Related To</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseRelatedTo(RelatedTo object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Available At</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Available At</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAvailableAt(AvailableAt object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Derived From</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Derived From</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDerivedFrom(DerivedFrom object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataRequirement(DataRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Linkable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Linkable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLinkable(Linkable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Generated Requirements</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Generated Requirements</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGeneratedRequirements(GeneratedRequirements object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Flow Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Flow Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataFlowRequirement(DataFlowRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Subjects</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Subjects</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataSubjects(DataSubjects object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Requirements</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Requirements</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataRequirements(DataRequirements object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Available Information</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Available Information</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAvailableInformation(AvailableInformation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Personal Information</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Personal Information</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePersonalInformation(PersonalInformation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Available Information Container</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Available Information Container</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAvailableInformationContainer(AvailableInformationContainer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Personal Information Container</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Personal Information Container</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePersonalInformationContainer(PersonalInformationContainer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Unlinkability Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Unlinkability Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseUnlinkabilityRequirement(UnlinkabilityRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Privacy Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Privacy Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePrivacyRequirement(PrivacyRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Unlinkability Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Unlinkability Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataUnlinkabilityRequirement(DataUnlinkabilityRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Controlers</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Controlers</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseControlers(Controlers object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Link</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Link</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLink(Link object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Undectability Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Undectability Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseUndectabilityRequirement(UndectabilityRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Pseudonimity Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Pseudonimity Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePseudonimityRequirement(PseudonimityRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ananomity Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Ananomity Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAnanomityRequirement(AnanomityRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Record Requirement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Record Requirement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataRecordRequirement(DataRecordRequirement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Functional Requirements</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Functional Requirements</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFunctionalRequirements(FunctionalRequirements object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Non Functional Requirements</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Non Functional Requirements</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseNonFunctionalRequirements(NonFunctionalRequirements object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Lawful By Consent</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Lawful By Consent</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLawfulByConsent(LawfulByConsent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Lawful By Contract</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Lawful By Contract</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLawfulByContract(LawfulByContract object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Lawful By Public Interest</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Lawful By Public Interest</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLawfulByPublicInterest(LawfulByPublicInterest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Lawful By Legitimate Interest</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Lawful By Legitimate Interest</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLawfulByLegitimateInterest(LawfulByLegitimateInterest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Lawful By Legal Obligation</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Lawful By Legal Obligation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLawfulByLegalObligation(LawfulByLegalObligation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Lawful By Vital Interest</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Lawful By Vital Interest</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLawfulByVitalInterest(LawfulByVitalInterest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Process</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Process</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseProcess(org.eclipse.papyrus.pdp4eng.common.profile.pdp4engCommonGDPR.Process object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseData(Data object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Personal Data</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Personal Data</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePersonalData(PersonalData object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //pdp4engReqGDPRSwitch
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/.classpath b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/.project b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/.project
new file mode 100644
index 0000000..c9d989a
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.pdp4eng.req.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/META-INF/MANIFEST.MF b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..cced042
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.pdp4eng.req.ui;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %providerName
+Automatic-Module-Name: org.eclipse.papyrus.pdp4eng.req.ui
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.papyrus.requirements.sysml14.common;bundle-version="[0.7.0,1.0.0)",
+ org.eclipse.uml2.uml;bundle-version="[5.5.0,6.0.0)",
+ org.eclipse.papyrus.requirements.sysml14.assistant.commands;bundle-version="[0.8.0,1.0.0)",
+ org.eclipse.core.commands;bundle-version="[3.9.700,4.0.0)",
+ org.eclipse.emf.transaction;bundle-version="[1.9.1,2.0.0)",
+ org.eclipse.papyrus.pdp4eng.req.gdprananalysis;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.ui.workbench;bundle-version="[3.119.0,4.0.0)",
+ org.eclipse.papyrus.infra.gmfdiag.css;bundle-version="[2.4.0,3.0.0)"
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.pdp4eng.req.ui
+Bundle-Activator: org.eclipse.papyrus.pdp4eng.req.ui.Activator
+Bundle-Localization: plugin
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/about.html b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/about.html
new file mode 100644
index 0000000..3e183aa
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>November 30, 2017</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/build.properties b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/build.properties
new file mode 100644
index 0000000..36f7a94
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               icons/,\
+               build.properties,\
+               styles/
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/icons/PDP-16x16.png b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/icons/PDP-16x16.png
new file mode 100644
index 0000000..3885ad5
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/icons/PDP-16x16.png
Binary files differ
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/icons/working.png b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/icons/working.png
new file mode 100644
index 0000000..413dfc8
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/icons/working.png
Binary files differ
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/plugin.properties b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/plugin.properties
new file mode 100644
index 0000000..ca41e6b
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/plugin.properties
@@ -0,0 +1,16 @@
+#################################################################################
+# Copyright (c) 2020 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Patrick Tessier - initial API and implementation
+#	  Gabriel Pedroza - initial API and implementation
+##################################################################################
+
+pluginName = pdp4eng Req UI
+providerName = Eclipse Modeling Project
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/plugin.xml b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/plugin.xml
new file mode 100644
index 0000000..0795287
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/plugin.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+       point="org.eclipse.papyrus.uml.extensionpoints.UMLProfile">
+    <profile
+          description="Profile to specify GDPR requirement"
+          iconpath="icons/PDP-16x16.png"
+          name="GDPR Requirement"
+          path="pathmap://PDP4ENG-REQ/pdp4engReqGDPR.profile.uml"
+          provider="CEA LIST">
+    </profile>
+ </extension>
+
+  <extension
+            point="org.eclipse.ui.menus">
+         <menuContribution
+               allPopups="false"
+               locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu?after=filtersMenu">
+            <menu
+                  icon="icons/PDP-16x16.png"
+                  id="org.eclipse.papyrus.pdp4eng.req.menu"
+                  label="PDP4Eng Req"
+                  tooltip="PDP4Eng Req">
+               <visibleWhen>
+                  <with
+                        variable="activeEditorId">
+                     <equals
+                           value="org.eclipse.papyrus.infra.core.papyrusEditor">
+                     </equals>
+                  </with>
+               </visibleWhen>
+            </menu>
+         </menuContribution>
+         <menuContribution
+               allPopups="false"
+               locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">
+            <menu
+                  icon="icons/PDP-16x16.png"
+                  id="org.eclipse.papyrus.pdp4eng.req.menu"
+                  label="PDP4Eng Req"
+                  tooltip="PDP4Eng Req">
+            </menu>
+         </menuContribution>
+      </extension>
+    
+
+
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            allPopups="false"
+            locationURI="popup:org.eclipse.papyrus.pdp4eng.req.menu">
+         <command
+               commandId="org.eclipse.papyrus.pdp4eng.req.ui.GenerateGDPRRequirementHandler.command"
+               icon="icons/working.png"
+               id="testReq.popup"
+               label="Generate GDPR Requirements"
+               style="push"
+               tooltip="Generate  GDPR Requirements">
+            <visibleWhen
+                  checkEnabled="true">
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension
+         point="org.eclipse.ui.commands">
+      <command
+            categoryId="org.eclipse.papyrus.editor.category"
+            defaultHandler="org.eclipse.papyrus.pdp4eng.req.ui.GenerateGDPRRequirementHandler"
+            id="org.eclipse.papyrus.pdp4eng.req.ui.GenerateGDPRRequirementHandler.command"
+            name="generate Req">
+      </command>
+   </extension>
+ <extension
+         point="org.eclipse.ui.startup">
+      <startup
+            class="org.eclipse.papyrus.pdp4eng.req.ui.Activator"></startup>
+   </extension>
+ <extension
+       point="org.eclipse.papyrus.infra.gmfdiag.css.userAgentStyleSheet">
+    <stylesheet
+          stylesheetPath="styles/RequirementsModel.css">
+    </stylesheet>
+ </extension>
+
+</plugin>
+   
+
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/pom.xml b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/pom.xml
new file mode 100644
index 0000000..dc06c56
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
+	<parent>
+		<groupId>org.eclipse.papyrus.pdp4eng</groupId>
+		<artifactId>org.eclipse.papyrus.pdp4eng.plugins.req.artifact</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.papyrus.pdp4eng.req.ui</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+	
+</project>
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/src/org/eclipse/papyrus/pdp4eng/req/ui/Activator.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/src/org/eclipse/papyrus/pdp4eng/req/ui/Activator.java
new file mode 100644
index 0000000..fa0accb
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/src/org/eclipse/papyrus/pdp4eng/req/ui/Activator.java
@@ -0,0 +1,60 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.ui;
+
+import org.eclipse.ui.IStartup;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+
+
+
+public class Activator extends AbstractUIPlugin implements  IStartup{
+	// The plug-in ID
+	public static final String pluginId = "org.eclipse.papyrus.pdp4eng.req.ui";
+	// The shared instance
+	private static Activator plugin;
+
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		Activator.plugin = this;
+
+	}
+
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		Activator.plugin = null;
+		super.stop(context);
+
+	}
+
+	@Override
+	public void earlyStartup() {
+		// TODO Auto-generated method stub
+
+	}
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return Activator.plugin;
+	}
+
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/src/org/eclipse/papyrus/pdp4eng/req/ui/GenerateGDPRRequirementHandler.java b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/src/org/eclipse/papyrus/pdp4eng/req/ui/GenerateGDPRRequirementHandler.java
new file mode 100644
index 0000000..ac350fb
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/src/org/eclipse/papyrus/pdp4eng/req/ui/GenerateGDPRRequirementHandler.java
@@ -0,0 +1,63 @@
+/**
+ *  Copyright (c)2020 CEA LIST, Committer Name, and others.
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr 
+ *  Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr 
+ * 
+ */
+package org.eclipse.papyrus.pdp4eng.req.ui;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.papyrus.pdp4eng.req.gdprananalysis.api.IRequirementGenerator;
+import org.eclipse.papyrus.pdp4eng.req.gdprananalysis.api.RequirementGenerator;
+import org.eclipse.papyrus.requirements.sysml14.common.PapyrusAbstractHandler;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+/**
+ * Executes the creation of a new SysML requirement based on the Papyrus Req
+ * preferences page.
+ *
+ */
+public class GenerateGDPRRequirementHandler extends PapyrusAbstractHandler {
+		public Object execute(ExecutionEvent event) throws ExecutionException {
+			super.execute(event);
+			Element selectedElement = getSelection();
+			if (selectedElement != null) {
+				IRequirementGenerator generator= new RequirementGenerator();
+				transactionalEditingDomain.getCommandStack().execute(generator.generateArticle51a(transactionalEditingDomain, (Package)selectedElement));
+				transactionalEditingDomain.getCommandStack().execute(generator.generateArticle51b(transactionalEditingDomain, (Package)selectedElement));
+				transactionalEditingDomain.getCommandStack().execute(generator.generateArticle51c(transactionalEditingDomain, (Package)selectedElement));
+				transactionalEditingDomain.getCommandStack().execute(generator.generateArticle51d(transactionalEditingDomain, (Package)selectedElement));
+				transactionalEditingDomain.getCommandStack().execute(generator.generateArticle51e(transactionalEditingDomain, (Package)selectedElement));
+				transactionalEditingDomain.getCommandStack().execute(generator.generateArticle51f(transactionalEditingDomain, (Package)selectedElement));
+				
+			}
+			return null;
+		}
+
+	/**
+	 * 
+	 * @see org.eclipse.core.commands.AbstractHandler#isEnabled()
+	 * 
+	 * @return true if the handler is possible
+	 */
+	@Override
+	public boolean isEnabled() {
+		Element selectedElement = getSelection();
+		if (selectedElement instanceof Package) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+}
diff --git a/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/styles/RequirementsModel.css b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/styles/RequirementsModel.css
new file mode 100644
index 0000000..7bdeb9a
--- /dev/null
+++ b/plugins/req/org.eclipse.papyrus.pdp4eng.req.ui/styles/RequirementsModel.css
@@ -0,0 +1,51 @@
+ObjectFlow{
+	routing:Rectilinear;
+}
+
+DataStoreNode{
+    bold:true;
+     fillColor: #91FF96;
+    
+}
+ [appliedStereotypes~="ProcessRequirement"]{
+	bold:true;
+    fillcolor:#72FF98;
+    lineWidth:3;
+    linecolor:#00AF2B;
+}
+
+ [appliedStereotypes~="DataRecordRequirement"]{
+	bold:true;
+    fillcolor:#EE8EFF;
+    lineWidth:3;
+    linecolor:#E207FF;
+}
+
+OutputPin{
+	bold:true;
+    fillcolor:white;
+    lineWidth:3;
+}
+
+InputPin{
+	bold:true;
+    fillcolor:#FFFCED;
+    lineWidth:3;
+}
+
+Label[type=StereotypeLabel]{
+	visible: true;
+}
+
+ControlFlow{
+    lineWidth:3;
+}
+
+ [appliedStereotypes~="PersonalDataRequirement"]{
+	bold:true;
+    fillcolor:yellow;
+    lineWidth:3;
+    radiusWidth:10; 
+    radiusHeight :10;
+    
+}
\ No newline at end of file
diff --git a/plugins/req/pom.xml b/plugins/req/pom.xml
new file mode 100644
index 0000000..22a455c
--- /dev/null
+++ b/plugins/req/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.papyrus.pdp4eng</groupId>
+		<artifactId>org.eclipse.papyrus.pdp4eng.plugins.artifact</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.papyrus.pdp4eng.plugins.req.artifact</artifactId>
+	<packaging>pom</packaging>
+
+
+	<name>pdp4eng req directory</name>
+	<description>pdp4eng req directory</description>
+
+	<modules>
+		<module>org.eclipse.papyrus.pdp4eng.req.profile</module>
+		<module>org.eclipse.papyrus.pdp4eng.req.ui</module>
+		<module>org.eclipse.papyrus.pdp4eng.req.metareq</module>
+		<module>org.eclipse.papyrus.pdp4eng.req.gdprananalysis</module>
+	</modules>
+
+</project>
diff --git a/releng/org.eclipse.papyrus.pdp4eng.p2/category.xml b/releng/org.eclipse.papyrus.pdp4eng.p2/category.xml
index 9bce367..1b402b4 100644
--- a/releng/org.eclipse.papyrus.pdp4eng.p2/category.xml
+++ b/releng/org.eclipse.papyrus.pdp4eng.p2/category.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <!--feature id="org.eclipse.papyrus.pdp4eng.common.feature">
+   <feature id="org.eclipse.papyrus.pdp4eng.common.feature">
       <category name="org.eclipse.papyrus.pdp4eng.requirements.category"/>
       <category name="org.eclipse.papyrus.pdp4eng.designer.category"/>
    </feature>
    <feature id="org.eclipse.papyrus.pdp4eng.req.feature">
       <category name="org.eclipse.papyrus.pdp4eng.requirements.category"/>
    </feature>
-   <feature id="org.eclipse.papyrus.pdp4eng.designer.feature">
+   <!--feature id="org.eclipse.papyrus.pdp4eng.designer.feature">
       <category name="org.eclipse.papyrus.pdp4eng.designer.category"/>
    </feature>
    <category-def name="org.eclipse.papyrus.pdp4eng.category" label="papyrus-privacydesigner">
@@ -21,7 +21,7 @@
          Privacy and Data Drotection for requirements
       </description>
    </category-def>
-   <category-def name="org.eclipse.papyrus.pdp4eng.designer.category" label="Privacy Design">
+   <!--category-def name="org.eclipse.papyrus.pdp4eng.designer.category" label="Privacy Design">
       <category name="org.eclipse.papyrus.pdp4eng.category"/>
       <description>
          Privacy and Data Protection for Design