Bug 552034: [Model2Doc] The framework must provide a way to create a paragraph from an stereotype property (typed with EString or with another type)

Change-Id: I30518cdbae5a5272a1e189ad09c60819fa95f752
Signed-off-by: Vincent Lorenzo <vincent.lorenzo@cea.fr>
Signed-off-by: Pauline DEVILLE <pauline.deville@cea.fr>
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/customIcons/full/obj16/StereotypePropertyAttributeAsParagraph.gif b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/customIcons/full/obj16/StereotypePropertyAttributeAsParagraph.gif
new file mode 100755
index 0000000..cba23d5
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/customIcons/full/obj16/StereotypePropertyAttributeAsParagraph.gif
Binary files differ
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/icons/full/obj16/StereotypePropertyAttributeAsParagraph.gif b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/icons/full/obj16/StereotypePropertyAttributeAsParagraph.gif
new file mode 100755
index 0000000..cba23d5
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/icons/full/obj16/StereotypePropertyAttributeAsParagraph.gif
Binary files differ
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/plugin.properties b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/plugin.properties
index 3aa2ba5..6c2b10b 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/plugin.properties
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/plugin.properties
@@ -48,3 +48,4 @@
 _UI_StereotypeFilterBehavior_STEREOTYPE_KIND_OF_literal = STEREOTYPE_KIND_OF
 _UI_CommentChoice_FIRST_OWNED_COMMENT_literal = FIRST_OWNED_COMMENT
 _UI_CommentChoice_ALL_OWNED_COMMENTS_literal = ALL_OWNED_COMMENTS
+_UI_StereotypePropertyAttributeAsParagraph_type = Stereotype Property Attribute As Paragraph
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/StereotypePartTemplateItemProvider.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/StereotypePartTemplateItemProvider.java
index 27f42d1..d644b54 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/StereotypePartTemplateItemProvider.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/StereotypePartTemplateItemProvider.java
@@ -276,6 +276,9 @@
 				UMLDocumentStructureTemplateFactory.eINSTANCE.createStereotypePropertyReferenceTableView()));
 
 		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.ICOMPOSED_SUB_BODY_PART_TEMPLATE__BODY_PART_TEMPLATE,
+				UMLDocumentStructureTemplateFactory.eINSTANCE.createStereotypePropertyAttributeAsParagraph()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.ICOMPOSED_SUB_BODY_PART_TEMPLATE__BODY_PART_TEMPLATE,
 				DocumentStructureTemplateFactory.eINSTANCE.createEReferencePartTemplate()));
 
 		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.ICOMPOSED_SUB_BODY_PART_TEMPLATE__BODY_PART_TEMPLATE,
@@ -286,6 +289,9 @@
 
 		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.ICOMPOSED_SUB_BODY_PART_TEMPLATE__BODY_PART_TEMPLATE,
 				DocumentStructureTemplateFactory.eINSTANCE.createInsertFileTemplate()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.ICOMPOSED_SUB_BODY_PART_TEMPLATE__BODY_PART_TEMPLATE,
+				DocumentStructureTemplateFactory.eINSTANCE.createEAttributeAsParagraph()));
 	}
 
 }
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/StereotypePropertyAttributeAsParagraphItemProvider.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/StereotypePropertyAttributeAsParagraphItemProvider.java
new file mode 100755
index 0000000..c5540b5
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/StereotypePropertyAttributeAsParagraphItemProvider.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (c) 2019 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:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.emf.expressions.booleanexpressions.BooleanExpressionsFactory;
+
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.DocumentStructureTemplatePackage;
+
+import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph;
+import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.UMLDocumentStructureTemplatePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class StereotypePropertyAttributeAsParagraphItemProvider extends StereotypePropertyTemplateItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public StereotypePropertyAttributeAsParagraphItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addGeneratePropertyDescriptor(object);
+			addGenerateTitlePropertyDescriptor(object);
+			addCustomTitlePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Generate feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addGeneratePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_IBodySectionPartTemplate_generate_feature"), //$NON-NLS-1$
+				getString("_UI_PropertyDescriptor_description", "_UI_IBodySectionPartTemplate_generate_feature", "_UI_IBodySectionPartTemplate_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE,
+				true,
+				false,
+				false,
+				ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				null,
+				null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Generate Title feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addGenerateTitlePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_IBodySectionPartTemplate_generateTitle_feature"), //$NON-NLS-1$
+				getString("_UI_PropertyDescriptor_description", "_UI_IBodySectionPartTemplate_generateTitle_feature", "_UI_IBodySectionPartTemplate_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE_TITLE,
+				true,
+				false,
+				false,
+				ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				null,
+				null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Custom Title feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addCustomTitlePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_IBodySectionPartTemplate_customTitle_feature"), //$NON-NLS-1$
+				getString("_UI_PropertyDescriptor_description", "_UI_IBodySectionPartTemplate_customTitle_feature", "_UI_IBodySectionPartTemplate_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__CUSTOM_TITLE,
+				true,
+				false,
+				false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				null,
+				null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns StereotypePropertyAttributeAsParagraph.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/StereotypePropertyAttributeAsParagraph")); //$NON-NLS-1$
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((StereotypePropertyAttributeAsParagraph) object).getStereotypeQualifiedName();
+		return label == null || label.length() == 0 ? getString("_UI_StereotypePropertyAttributeAsParagraph_type") : //$NON-NLS-1$
+				getString("_UI_StereotypePropertyAttributeAsParagraph_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(StereotypePropertyAttributeAsParagraph.class)) {
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE:
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_TITLE:
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__CUSTOM_TITLE:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+			return;
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION,
+				BooleanExpressionsFactory.eINSTANCE.createOrExpression()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION,
+				BooleanExpressionsFactory.eINSTANCE.createAndExpression()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION,
+				BooleanExpressionsFactory.eINSTANCE.createNotExpression()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION,
+				BooleanExpressionsFactory.eINSTANCE.createLiteralTrueExpression()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION,
+				BooleanExpressionsFactory.eINSTANCE.createLiteralFalseExpression()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION,
+				BooleanExpressionsFactory.eINSTANCE.createReferenceBooleanExpression()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION,
+				BooleanExpressionsFactory.eINSTANCE.createSingleEAttributeValueEqualityExpression()));
+	}
+
+}
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/UMLDocumentStructureTemplateItemProviderAdapterFactory.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/UMLDocumentStructureTemplateItemProviderAdapterFactory.java
index 99149fc..dc36f20 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/UMLDocumentStructureTemplateItemProviderAdapterFactory.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.edit/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/provider/UMLDocumentStructureTemplateItemProviderAdapterFactory.java
@@ -322,6 +322,31 @@
 	}
 
 	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected StereotypePropertyAttributeAsParagraphItemProvider stereotypePropertyAttributeAsParagraphItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter createStereotypePropertyAttributeAsParagraphAdapter() {
+		if (stereotypePropertyAttributeAsParagraphItemProvider == null) {
+			stereotypePropertyAttributeAsParagraphItemProvider = new StereotypePropertyAttributeAsParagraphItemProvider(this);
+		}
+
+		return stereotypePropertyAttributeAsParagraphItemProvider;
+	}
+
+	/**
 	 * This returns the root adapter factory that contains this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -491,6 +516,9 @@
 		if (stereotypePropertyAttributeListItemTemplateItemProvider != null) {
 			stereotypePropertyAttributeListItemTemplateItemProvider.dispose();
 		}
+		if (stereotypePropertyAttributeAsParagraphItemProvider != null) {
+			stereotypePropertyAttributeAsParagraphItemProvider.dispose();
+		}
 	}
 
 	/**
@@ -556,6 +584,9 @@
 				newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.BODY__BODY_PART_TEMPLATE,
 						UMLDocumentStructureTemplateFactory.eINSTANCE.createStereotypePropertyReferenceTableView()));
 
+				newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.BODY__BODY_PART_TEMPLATE,
+						UMLDocumentStructureTemplateFactory.eINSTANCE.createStereotypePropertyAttributeAsParagraph()));
+
 				return null;
 			}
 
@@ -590,6 +621,9 @@
 				newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.ICOMPOSED_SUB_BODY_PART_TEMPLATE__BODY_PART_TEMPLATE,
 						UMLDocumentStructureTemplateFactory.eINSTANCE.createStereotypePropertyReferenceTableView()));
 
+				newChildDescriptors.add(createChildParameter(DocumentStructureTemplatePackage.Literals.ICOMPOSED_SUB_BODY_PART_TEMPLATE__BODY_PART_TEMPLATE,
+						UMLDocumentStructureTemplateFactory.eINSTANCE.createStereotypePropertyAttributeAsParagraph()));
+
 				return null;
 			}
 
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.ecore b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.ecore
index dc1c824..aa46345 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.ecore
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.ecore
@@ -294,4 +294,6 @@
       <details key="documentation" value="This interface is used to indicate that the referenced property must be an attribute (a primitive type)"/>
     </eAnnotations>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StereotypePropertyAttributeAsParagraph"
+      eSuperTypes="#//StereotypePropertyTemplate #//StereotypePropertyAttribute ../../org.eclipse.papyrus.model2doc.emf.documentstructuretemplate/model/documentstructuretemplate.ecore#//ILeafBodyPartTemplate ../../org.eclipse.papyrus.model2doc.emf.documentstructuretemplate/model/documentstructuretemplate.ecore#//ITemplatePartView #//IUMLBodyPartTemplateTitle"/>
 </ecore:EPackage>
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.genmodel b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.genmodel
index 0f78f21..da2776a 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.genmodel
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.genmodel
@@ -104,5 +104,6 @@
         labelFeature="../../org.eclipse.papyrus.model2doc.emf.documentstructuretemplate/model/documentstructuretemplate.genmodel#//documentstructuretemplate/IListItemTemplate/customItemLabel"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="umldocumentstructuretemplate.ecore#//StereotypePropertyAttributeListItemTemplate"/>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="umldocumentstructuretemplate.ecore#//StereotypePropertyAttribute"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="umldocumentstructuretemplate.ecore#//StereotypePropertyAttributeAsParagraph"/>
   </genPackages>
 </genmodel:GenModel>
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.notation b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.notation
index 3351d42..daa70fc 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.notation
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.notation
@@ -1779,4 +1779,256 @@
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7XO-gYhpEem3iKDIkTXRuw" id="(0.5857740585774058,1.0)"/>
     </edges>
   </notation:Diagram>
+  <notation:Diagram xmi:id="_RHZDEKZaEeqPB-5uC46uFQ" type="PapyrusUMLClassDiagram" name="StereotypePropertyAsComment" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_UIrp0KZaEeqPB-5uC46uFQ" type="Interface_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_UIuGEKZaEeqPB-5uC46uFQ" type="Interface_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_UIutIKZaEeqPB-5uC46uFQ" type="Interface_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_UIutIaZaEeqPB-5uC46uFQ" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UIutIqZaEeqPB-5uC46uFQ" type="Interface_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_UIutI6ZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UIutJKZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UIutJaZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UIutJqZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UIutJ6ZaEeqPB-5uC46uFQ" type="Interface_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_UIutKKZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UIutKaZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UIutKqZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UIutK6ZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UIutLKZaEeqPB-5uC46uFQ" type="Interface_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_UIutLaZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UIutLqZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UIutL6ZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UIutMKZaEeqPB-5uC46uFQ"/>
+      </children>
+      <element xmi:type="uml:Interface" href="umldocumentstructuretemplate.uml#_5enekIg-EemnhdxpIjxH_A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UIrp0aZaEeqPB-5uC46uFQ" x="760" y="40" width="241" height="121"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_UwURkKZaEeqPB-5uC46uFQ" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_UwU4oKZaEeqPB-5uC46uFQ" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_UwU4oaZaEeqPB-5uC46uFQ" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_UwU4oqZaEeqPB-5uC46uFQ" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UwU4o6ZaEeqPB-5uC46uFQ" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_UwU4pKZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UwU4paZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UwU4pqZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UwU4p6ZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UwVfsKZaEeqPB-5uC46uFQ" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_UwVfsaZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UwVfsqZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UwVfs6ZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UwVftKZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UwVftaZaEeqPB-5uC46uFQ" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_UwVftqZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UwVft6ZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UwVfuKZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UwVfuaZaEeqPB-5uC46uFQ"/>
+      </children>
+      <element xmi:type="uml:Class" href="umldocumentstructuretemplate.uml#_UwMVwKZaEeqPB-5uC46uFQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UwURkaZaEeqPB-5uC46uFQ" x="40" y="300" width="361"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_aahbUKZaEeqPB-5uC46uFQ" type="Interface_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_aahbUqZaEeqPB-5uC46uFQ" type="Interface_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_aahbU6ZaEeqPB-5uC46uFQ" type="Interface_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_aahbVKZaEeqPB-5uC46uFQ" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_aahbVaZaEeqPB-5uC46uFQ" type="Interface_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_aahbVqZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_aahbV6ZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_aahbWKZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aahbWaZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_aahbWqZaEeqPB-5uC46uFQ" type="Interface_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_aahbW6ZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_aahbXKZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_aahbXaZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aahbXqZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_aahbX6ZaEeqPB-5uC46uFQ" type="Interface_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_aahbYKZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_aahbYaZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_aahbYqZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aahbY6ZaEeqPB-5uC46uFQ"/>
+      </children>
+      <element xmi:type="uml:Interface" href="pathmap://DOCUMENT_STRUCTURE_TEMPLATE/documentstructuretemplate.uml#_R99HIFX-EemKJasCEBKPhQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aahbUaZaEeqPB-5uC46uFQ" x="1060" y="40" width="241" height="121"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_cvcrUKZaEeqPB-5uC46uFQ" type="Interface_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_cvcrUqZaEeqPB-5uC46uFQ" type="Interface_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_cvcrU6ZaEeqPB-5uC46uFQ" type="Interface_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_cvcrVKZaEeqPB-5uC46uFQ" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_cvdSYKZaEeqPB-5uC46uFQ" type="Interface_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_cvdSYaZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_cvdSYqZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_cvdSY6ZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cvdSZKZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_cvdSZaZaEeqPB-5uC46uFQ" type="Interface_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_cvdSZqZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_cvdSZ6ZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_cvdSaKZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cvdSaaZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_cvdSaqZaEeqPB-5uC46uFQ" type="Interface_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_cvdSa6ZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_cvdSbKZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_cvdSbaZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cvdSbqZaEeqPB-5uC46uFQ"/>
+      </children>
+      <element xmi:type="uml:Interface" href="pathmap://DOCUMENT_STRUCTURE_TEMPLATE/documentstructuretemplate.uml#_DwGdIFYFEemKJasCEBKPhQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cvcrUaZaEeqPB-5uC46uFQ" x="1360" y="40" width="241" height="121"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_iUCVQKZaEeqPB-5uC46uFQ" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_iUCVQqZaEeqPB-5uC46uFQ" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_iUCVQ6ZaEeqPB-5uC46uFQ" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_iUCVRKZaEeqPB-5uC46uFQ" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_iUC8UKZaEeqPB-5uC46uFQ" type="Class_AttributeCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_mDsd4KZaEeqPB-5uC46uFQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="umldocumentstructuretemplate.uml#_t7lpUHhxEemgVsD3DibuHQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_mDsd4aZaEeqPB-5uC46uFQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_mDtE8KZaEeqPB-5uC46uFQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="umldocumentstructuretemplate.uml#_iVeCIHhuEem9G7r-_dimjw"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_mDtE8aZaEeqPB-5uC46uFQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_mDtE8qZaEeqPB-5uC46uFQ" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="umldocumentstructuretemplate.uml#_iVkIwHhuEem9G7r-_dimjw"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_mDtE86ZaEeqPB-5uC46uFQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_iUC8UaZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_iUC8UqZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_iUC8U6ZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iUC8VKZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_iUC8VaZaEeqPB-5uC46uFQ" type="Class_OperationCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_mDtsAKZaEeqPB-5uC46uFQ" type="Operation_ClassOperationLabel">
+          <element xmi:type="uml:Operation" href="umldocumentstructuretemplate.uml#_2_vKYHhxEemgVsD3DibuHQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_mDtsAaZaEeqPB-5uC46uFQ"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_mDtsAqZaEeqPB-5uC46uFQ" type="Operation_ClassOperationLabel">
+          <element xmi:type="uml:Operation" href="umldocumentstructuretemplate.uml#_lHPmMHhuEem9G7r-_dimjw"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_mDtsA6ZaEeqPB-5uC46uFQ"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_iUC8VqZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_iUC8V6ZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_iUC8WKZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iUC8WaZaEeqPB-5uC46uFQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_iUC8WqZaEeqPB-5uC46uFQ" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_iUC8W6ZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_iUC8XKZaEeqPB-5uC46uFQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_iUC8XaZaEeqPB-5uC46uFQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iUC8XqZaEeqPB-5uC46uFQ"/>
+      </children>
+      <element xmi:type="uml:Class" href="umldocumentstructuretemplate.uml#_awbcAHhxEemgVsD3DibuHQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iUCVQaZaEeqPB-5uC46uFQ" x="40" y="40" width="361" height="181"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_rsS2YKZgEeqrit3XiCSzDw" type="Interface_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_rsY9AKZgEeqrit3XiCSzDw" type="Interface_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_rsZkEKZgEeqrit3XiCSzDw" type="Interface_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_rsZkEaZgEeqrit3XiCSzDw" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_rsaLIKZgEeqrit3XiCSzDw" type="Interface_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_rsaLIaZgEeqrit3XiCSzDw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_rsaLIqZgEeqrit3XiCSzDw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_rsaLI6ZgEeqrit3XiCSzDw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsaLJKZgEeqrit3XiCSzDw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_rsaLJaZgEeqrit3XiCSzDw" type="Interface_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_rsaLJqZgEeqrit3XiCSzDw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_rsaLJ6ZgEeqrit3XiCSzDw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_rsaLKKZgEeqrit3XiCSzDw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsaLKaZgEeqrit3XiCSzDw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_rsayMKZgEeqrit3XiCSzDw" type="Interface_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_rsayMaZgEeqrit3XiCSzDw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_rsayMqZgEeqrit3XiCSzDw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_rsayM6ZgEeqrit3XiCSzDw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsayNKZgEeqrit3XiCSzDw"/>
+      </children>
+      <element xmi:type="uml:Interface" href="umldocumentstructuretemplate.uml#_u5PwMHfIEemZAtnyL46QZg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsS2YaZgEeqrit3XiCSzDw" x="460" y="40" width="241" height="121"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_RHZDEaZaEeqPB-5uC46uFQ" name="diagram_compatibility_version" stringValue="1.4.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_RHZDEqZaEeqPB-5uC46uFQ"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_RHZDE6ZaEeqPB-5uC46uFQ" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
+      <owner xmi:type="uml:Model" href="umldocumentstructuretemplate.uml#_sha7EB8REem9r6zmWAQv1w"/>
+    </styles>
+    <element xmi:type="uml:Model" href="umldocumentstructuretemplate.uml#_sha7EB8REem9r6zmWAQv1w"/>
+    <edges xmi:type="notation:Connector" xmi:id="_s4RJAKZaEeqPB-5uC46uFQ" type="Generalization_Edge" source="_UwURkKZaEeqPB-5uC46uFQ" target="_iUCVQKZaEeqPB-5uC46uFQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_s4RJA6ZaEeqPB-5uC46uFQ" type="Generalization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_s4RJBKZaEeqPB-5uC46uFQ" y="40"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_s4RJAaZaEeqPB-5uC46uFQ"/>
+      <element xmi:type="uml:Generalization" href="umldocumentstructuretemplate.uml#_s4BRYKZaEeqPB-5uC46uFQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s4RJAqZaEeqPB-5uC46uFQ" points="[220, 300, -643984, -643984]$[220, 221, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s4tN4KZaEeqPB-5uC46uFQ" id="(0.4986149584487535,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s4tN4aZaEeqPB-5uC46uFQ" id="(0.4986149584487535,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_t5umAKZaEeqPB-5uC46uFQ" type="InterfaceRealization_Edge" source="_UwURkKZaEeqPB-5uC46uFQ" target="_UIrp0KZaEeqPB-5uC46uFQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_t5umA6ZaEeqPB-5uC46uFQ" type="InterfaceRealization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_xkdjoKZgEeqrit3XiCSzDw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_t5umBKZaEeqPB-5uC46uFQ" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_t5umBaZaEeqPB-5uC46uFQ" type="InterfaceRealization_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_xkrmEKZgEeqrit3XiCSzDw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_t5umBqZaEeqPB-5uC46uFQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_t5umAaZaEeqPB-5uC46uFQ"/>
+      <element xmi:type="uml:InterfaceRealization" href="umldocumentstructuretemplate.uml#_t5LzcKZaEeqPB-5uC46uFQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t5umAqZaEeqPB-5uC46uFQ" points="[401, 340, -643984, -643984]$[580, 340, -643984, -643984]$[580, 161, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t6FLUKZaEeqPB-5uC46uFQ" id="(1.0,0.4)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t6FyYKZaEeqPB-5uC46uFQ" id="(0.4979253112033195,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_uoctMKZaEeqPB-5uC46uFQ" type="InterfaceRealization_Edge" source="_UwURkKZaEeqPB-5uC46uFQ" target="_aahbUKZaEeqPB-5uC46uFQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_uoctM6ZaEeqPB-5uC46uFQ" type="InterfaceRealization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_xjy1QKZgEeqrit3XiCSzDw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_uoctNKZaEeqPB-5uC46uFQ" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_uoctNaZaEeqPB-5uC46uFQ" type="InterfaceRealization_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_xkDT8KZgEeqrit3XiCSzDw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_uoctNqZaEeqPB-5uC46uFQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_uoctMaZaEeqPB-5uC46uFQ"/>
+      <element xmi:type="uml:InterfaceRealization" href="umldocumentstructuretemplate.uml#_uoPR0KZaEeqPB-5uC46uFQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uoctMqZaEeqPB-5uC46uFQ" points="[401, 340, -643984, -643984]$[880, 340, -643984, -643984]$[880, 161, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uoyrcKZaEeqPB-5uC46uFQ" id="(1.0,0.4)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uoyrcaZaEeqPB-5uC46uFQ" id="(0.4979253112033195,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_vQrx4KZaEeqPB-5uC46uFQ" type="InterfaceRealization_Edge" source="_UwURkKZaEeqPB-5uC46uFQ" target="_cvcrUKZaEeqPB-5uC46uFQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_vQsY8qZaEeqPB-5uC46uFQ" type="InterfaceRealization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_xk_IEKZgEeqrit3XiCSzDw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_vQsY86ZaEeqPB-5uC46uFQ" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_vQsY9KZaEeqPB-5uC46uFQ" type="InterfaceRealization_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_xlMjcKZgEeqrit3XiCSzDw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_vQsY9aZaEeqPB-5uC46uFQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_vQsY8KZaEeqPB-5uC46uFQ"/>
+      <element xmi:type="uml:InterfaceRealization" href="umldocumentstructuretemplate.uml#_vQe9kKZaEeqPB-5uC46uFQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vQsY8aZaEeqPB-5uC46uFQ" points="[401, 340, -643984, -643984]$[1180, 340, -643984, -643984]$[1180, 161, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vRId0KZaEeqPB-5uC46uFQ" id="(1.0,0.4)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vRId0aZaEeqPB-5uC46uFQ" id="(0.4979253112033195,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_0UpMQKZgEeqrit3XiCSzDw" type="InterfaceRealization_Edge" source="_UwURkKZaEeqPB-5uC46uFQ" target="_rsS2YKZgEeqrit3XiCSzDw">
+      <children xmi:type="notation:DecorationNode" xmi:id="_0UpzUKZgEeqrit3XiCSzDw" type="InterfaceRealization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_0UpzUaZgEeqrit3XiCSzDw" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_0UpzUqZgEeqrit3XiCSzDw" type="InterfaceRealization_NameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_0UpzU6ZgEeqrit3XiCSzDw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_0UpMQaZgEeqrit3XiCSzDw"/>
+      <element xmi:type="uml:InterfaceRealization" href="umldocumentstructuretemplate.uml#_0URY0KZgEeqrit3XiCSzDw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0UpMQqZgEeqrit3XiCSzDw" points="[401, 340, -643984, -643984]$[580, 155, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0VL-0KZgEeqrit3XiCSzDw" id="(1.0,0.4)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0VMl4KZgEeqrit3XiCSzDw" id="(0.4979253112033195,1.0)"/>
+    </edges>
+  </notation:Diagram>
 </xmi:XMI>
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.uml b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.uml
index 09d6e96..b1ee173 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.uml
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/model/umldocumentstructuretemplate.uml
@@ -442,6 +442,19 @@
         <redefinedOperation xmi:type="uml:Operation" href="pathmap://DOCUMENT_STRUCTURE_TEMPLATE/documentstructuretemplate.uml#_jwuUgHxmEem8DZ1bmLpXuQ"/>
       </ownedOperation>
     </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_UwMVwKZaEeqPB-5uC46uFQ" name="StereotypePropertyAttributeAsParagraph">
+      <generalization xmi:type="uml:Generalization" xmi:id="_s4BRYKZaEeqPB-5uC46uFQ" general="_awbcAHhxEemgVsD3DibuHQ"/>
+      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_t5LzcKZaEeqPB-5uC46uFQ" client="_UwMVwKZaEeqPB-5uC46uFQ" supplier="_5enekIg-EemnhdxpIjxH_A" contract="_5enekIg-EemnhdxpIjxH_A"/>
+      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_uoPR0KZaEeqPB-5uC46uFQ" client="_UwMVwKZaEeqPB-5uC46uFQ">
+        <supplier xmi:type="uml:Interface" href="pathmap://DOCUMENT_STRUCTURE_TEMPLATE/documentstructuretemplate.uml#_R99HIFX-EemKJasCEBKPhQ"/>
+        <contract xmi:type="uml:Interface" href="pathmap://DOCUMENT_STRUCTURE_TEMPLATE/documentstructuretemplate.uml#_R99HIFX-EemKJasCEBKPhQ"/>
+      </interfaceRealization>
+      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_vQe9kKZaEeqPB-5uC46uFQ" client="_UwMVwKZaEeqPB-5uC46uFQ">
+        <supplier xmi:type="uml:Interface" href="pathmap://DOCUMENT_STRUCTURE_TEMPLATE/documentstructuretemplate.uml#_DwGdIFYFEemKJasCEBKPhQ"/>
+        <contract xmi:type="uml:Interface" href="pathmap://DOCUMENT_STRUCTURE_TEMPLATE/documentstructuretemplate.uml#_DwGdIFYFEemKJasCEBKPhQ"/>
+      </interfaceRealization>
+      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_0URY0KZgEeqrit3XiCSzDw" client="_UwMVwKZaEeqPB-5uC46uFQ" supplier="_u5PwMHfIEemZAtnyL46QZg" contract="_u5PwMHfIEemZAtnyL46QZg"/>
+    </packagedElement>
     <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_x6veQB8TEemcGrhwCFVIGw">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x6wsYB8TEemcGrhwCFVIGw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/StereotypePropertyAttributeAsParagraph.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/StereotypePropertyAttributeAsParagraph.java
new file mode 100755
index 0000000..2d5119f
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/StereotypePropertyAttributeAsParagraph.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2019 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:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.uml.documentstructuretemplate;
+
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.ILeafBodyPartTemplate;
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.ITemplatePartView;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stereotype Property Attribute As Paragraph</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.UMLDocumentStructureTemplatePackage#getStereotypePropertyAttributeAsParagraph()
+ * @model
+ * @generated
+ */
+public interface StereotypePropertyAttributeAsParagraph extends StereotypePropertyTemplate, StereotypePropertyAttribute, ILeafBodyPartTemplate, ITemplatePartView, IUMLBodyPartTemplateTitle {
+} // StereotypePropertyAttributeAsParagraph
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/UMLDocumentStructureTemplateFactory.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/UMLDocumentStructureTemplateFactory.java
index a5f632d..7736cba 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/UMLDocumentStructureTemplateFactory.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/UMLDocumentStructureTemplateFactory.java
@@ -115,6 +115,16 @@
 	StereotypePropertyAttributeListItemTemplate createStereotypePropertyAttributeListItemTemplate();
 
 	/**
+	 * Returns a new object of class '<em>Stereotype Property Attribute As Paragraph</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Stereotype Property Attribute As Paragraph</em>'.
+	 * @generated
+	 */
+	StereotypePropertyAttributeAsParagraph createStereotypePropertyAttributeAsParagraph();
+
+	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/UMLDocumentStructureTemplatePackage.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/UMLDocumentStructureTemplatePackage.java
index af0a3fd..0c41eee 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/UMLDocumentStructureTemplatePackage.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/UMLDocumentStructureTemplatePackage.java
@@ -1905,6 +1905,147 @@
 	int STEREOTYPE_PROPERTY_ATTRIBUTE_OPERATION_COUNT = 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.StereotypePropertyAttributeAsParagraphImpl <em>Stereotype Property Attribute As Paragraph</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.StereotypePropertyAttributeAsParagraphImpl
+	 * @see org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.UMLDocumentStructureTemplatePackageImpl#getStereotypePropertyAttributeAsParagraph()
+	 * @generated
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH = 18;
+
+	/**
+	 * The feature id for the '<em><b>Stereotype Filter Rule</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__STEREOTYPE_FILTER_RULE = STEREOTYPE_PROPERTY_TEMPLATE__STEREOTYPE_FILTER_RULE;
+
+	/**
+	 * The feature id for the '<em><b>Stereotype Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__STEREOTYPE_QUALIFIED_NAME = STEREOTYPE_PROPERTY_TEMPLATE__STEREOTYPE_QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Property Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__PROPERTY_NAME = STEREOTYPE_PROPERTY_TEMPLATE__PROPERTY_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Generate</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE = STEREOTYPE_PROPERTY_TEMPLATE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Generate Title</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_TITLE = STEREOTYPE_PROPERTY_TEMPLATE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Custom Title</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__CUSTOM_TITLE = STEREOTYPE_PROPERTY_TEMPLATE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Generate Branch Condition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION = STEREOTYPE_PROPERTY_TEMPLATE_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Stereotype Property Attribute As Paragraph</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH_FEATURE_COUNT = STEREOTYPE_PROPERTY_TEMPLATE_FEATURE_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get First Matching Stereotype Application</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH___GET_FIRST_MATCHING_STEREOTYPE_APPLICATION__EOBJECT = STEREOTYPE_PROPERTY_TEMPLATE___GET_FIRST_MATCHING_STEREOTYPE_APPLICATION__EOBJECT;
+
+	/**
+	 * The operation id for the '<em>Get Stereotype Property Values</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH___GET_STEREOTYPE_PROPERTY_VALUES__EOBJECT = STEREOTYPE_PROPERTY_TEMPLATE___GET_STEREOTYPE_PROPERTY_VALUES__EOBJECT;
+
+	/**
+	 * The operation id for the '<em>Build Part Template Title</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH___BUILD_PART_TEMPLATE_TITLE__EOBJECT = STEREOTYPE_PROPERTY_TEMPLATE_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Generate Branch</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH___GENERATE_BRANCH__EOBJECT = STEREOTYPE_PROPERTY_TEMPLATE_OPERATION_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Stereotype Property Attribute As Paragraph</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH_OPERATION_COUNT = STEREOTYPE_PROPERTY_TEMPLATE_OPERATION_COUNT + 2;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypeFilterBehavior <em>Stereotype Filter Behavior</em>}' enum.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1913,7 +2054,7 @@
 	 * @see org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.UMLDocumentStructureTemplatePackageImpl#getStereotypeFilterBehavior()
 	 * @generated
 	 */
-	int STEREOTYPE_FILTER_BEHAVIOR = 18;
+	int STEREOTYPE_FILTER_BEHAVIOR = 19;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.CommentChoice <em>Comment Choice</em>}' enum.
@@ -1924,7 +2065,7 @@
 	 * @see org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.UMLDocumentStructureTemplatePackageImpl#getCommentChoice()
 	 * @generated
 	 */
-	int COMMENT_CHOICE = 19;
+	int COMMENT_CHOICE = 20;
 
 
 	/**
@@ -2231,6 +2372,17 @@
 	EClass getStereotypePropertyAttribute();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph <em>Stereotype Property Attribute As Paragraph</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Stereotype Property Attribute As Paragraph</em>'.
+	 * @see org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph
+	 * @generated
+	 */
+	EClass getStereotypePropertyAttributeAsParagraph();
+
+	/**
 	 * Returns the meta object for enum '{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypeFilterBehavior <em>Stereotype Filter Behavior</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2557,6 +2709,17 @@
 		EClass STEREOTYPE_PROPERTY_ATTRIBUTE = eINSTANCE.getStereotypePropertyAttribute();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.StereotypePropertyAttributeAsParagraphImpl <em>Stereotype Property Attribute As Paragraph</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.StereotypePropertyAttributeAsParagraphImpl
+		 * @see org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.UMLDocumentStructureTemplatePackageImpl#getStereotypePropertyAttributeAsParagraph()
+		 * @generated
+		 */
+		EClass STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH = eINSTANCE.getStereotypePropertyAttributeAsParagraph();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypeFilterBehavior <em>Stereotype Filter Behavior</em>}' enum.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/StereotypePropertyAttributeAsParagraphImpl.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/StereotypePropertyAttributeAsParagraphImpl.java
new file mode 100755
index 0000000..3f27618
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/StereotypePropertyAttributeAsParagraphImpl.java
@@ -0,0 +1,628 @@
+/**
+ * Copyright (c) 2019 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:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.infra.emf.expressions.booleanexpressions.IBooleanEObjectExpression;
+
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.DocumentStructureTemplatePackage;
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.IBodyPartTemplate;
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.IBodySectionPartTemplate;
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.ILeafBodyPartTemplate;
+import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.ITemplatePartView;
+
+import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.IUMLBodyPartTemplateTitle;
+import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttribute;
+import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph;
+import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.UMLDocumentStructureTemplatePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stereotype Property Attribute As Paragraph</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.StereotypePropertyAttributeAsParagraphImpl#isGenerate <em>Generate</em>}</li>
+ * <li>{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.StereotypePropertyAttributeAsParagraphImpl#isGenerateTitle <em>Generate Title</em>}</li>
+ * <li>{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.StereotypePropertyAttributeAsParagraphImpl#getCustomTitle <em>Custom Title</em>}</li>
+ * <li>{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.impl.StereotypePropertyAttributeAsParagraphImpl#getGenerateBranchCondition <em>Generate Branch Condition</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StereotypePropertyAttributeAsParagraphImpl extends StereotypePropertyTemplateImpl implements StereotypePropertyAttributeAsParagraph {
+	/**
+	 * The default value of the '{@link #isGenerate() <em>Generate</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isGenerate()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean GENERATE_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isGenerate() <em>Generate</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isGenerate()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean generate = GENERATE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isGenerateTitle() <em>Generate Title</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isGenerateTitle()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean GENERATE_TITLE_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isGenerateTitle() <em>Generate Title</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isGenerateTitle()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean generateTitle = GENERATE_TITLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCustomTitle() <em>Custom Title</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getCustomTitle()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CUSTOM_TITLE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCustomTitle() <em>Custom Title</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getCustomTitle()
+	 * @generated
+	 * @ordered
+	 */
+	protected String customTitle = CUSTOM_TITLE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getGenerateBranchCondition() <em>Generate Branch Condition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getGenerateBranchCondition()
+	 * @generated
+	 * @ordered
+	 */
+	protected IBooleanEObjectExpression generateBranchCondition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected StereotypePropertyAttributeAsParagraphImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return UMLDocumentStructureTemplatePackage.Literals.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isGenerate() {
+		return generate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setGenerate(boolean newGenerate) {
+		boolean oldGenerate = generate;
+		generate = newGenerate;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE, oldGenerate, generate));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isGenerateTitle() {
+		return generateTitle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setGenerateTitle(boolean newGenerateTitle) {
+		boolean oldGenerateTitle = generateTitle;
+		generateTitle = newGenerateTitle;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_TITLE, oldGenerateTitle, generateTitle));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getCustomTitle() {
+		return customTitle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setCustomTitle(String newCustomTitle) {
+		String oldCustomTitle = customTitle;
+		customTitle = newCustomTitle;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__CUSTOM_TITLE, oldCustomTitle, customTitle));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public IBooleanEObjectExpression getGenerateBranchCondition() {
+		return generateBranchCondition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public NotificationChain basicSetGenerateBranchCondition(IBooleanEObjectExpression newGenerateBranchCondition, NotificationChain msgs) {
+		IBooleanEObjectExpression oldGenerateBranchCondition = generateBranchCondition;
+		generateBranchCondition = newGenerateBranchCondition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION, oldGenerateBranchCondition, newGenerateBranchCondition);
+			if (msgs == null) {
+				msgs = notification;
+			} else {
+				msgs.add(notification);
+			}
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setGenerateBranchCondition(IBooleanEObjectExpression newGenerateBranchCondition) {
+		if (newGenerateBranchCondition != generateBranchCondition) {
+			NotificationChain msgs = null;
+			if (generateBranchCondition != null) {
+				msgs = ((InternalEObject) generateBranchCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION, null, msgs);
+			}
+			if (newGenerateBranchCondition != null) {
+				msgs = ((InternalEObject) newGenerateBranchCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION, null, msgs);
+			}
+			msgs = basicSetGenerateBranchCondition(newGenerateBranchCondition, msgs);
+			if (msgs != null) {
+				msgs.dispatch();
+			}
+		} else if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION, newGenerateBranchCondition, newGenerateBranchCondition));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String buildPartTemplateTitle(final EObject context) {
+		return org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.internal.operations.UMLBodySectionPartTemplateTitleHelper.UML_INSTANCE.buildPartTemplateTitle(this, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean generateBranch(final EObject context) {
+		if (null == context) {
+			return false;
+		}
+		if (null == generateBranchCondition) {
+			return true;
+		}
+
+		return generateBranchCondition.evaluate(context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION:
+			return basicSetGenerateBranchCondition(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE:
+			return isGenerate();
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_TITLE:
+			return isGenerateTitle();
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__CUSTOM_TITLE:
+			return getCustomTitle();
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION:
+			return getGenerateBranchCondition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE:
+			setGenerate((Boolean) newValue);
+			return;
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_TITLE:
+			setGenerateTitle((Boolean) newValue);
+			return;
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__CUSTOM_TITLE:
+			setCustomTitle((String) newValue);
+			return;
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION:
+			setGenerateBranchCondition((IBooleanEObjectExpression) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE:
+			setGenerate(GENERATE_EDEFAULT);
+			return;
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_TITLE:
+			setGenerateTitle(GENERATE_TITLE_EDEFAULT);
+			return;
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__CUSTOM_TITLE:
+			setCustomTitle(CUSTOM_TITLE_EDEFAULT);
+			return;
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION:
+			setGenerateBranchCondition((IBooleanEObjectExpression) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE:
+			return generate != GENERATE_EDEFAULT;
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_TITLE:
+			return generateTitle != GENERATE_TITLE_EDEFAULT;
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__CUSTOM_TITLE:
+			return CUSTOM_TITLE_EDEFAULT == null ? customTitle != null : !CUSTOM_TITLE_EDEFAULT.equals(customTitle);
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION:
+			return generateBranchCondition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == StereotypePropertyAttribute.class) {
+			switch (derivedFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == IBodySectionPartTemplate.class) {
+			switch (derivedFeatureID) {
+			case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE:
+				return DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE__GENERATE;
+			case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_TITLE:
+				return DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE__GENERATE_TITLE;
+			case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__CUSTOM_TITLE:
+				return DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE__CUSTOM_TITLE;
+			case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION:
+				return DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION;
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == IBodyPartTemplate.class) {
+			switch (derivedFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == ILeafBodyPartTemplate.class) {
+			switch (derivedFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == ITemplatePartView.class) {
+			switch (derivedFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == IUMLBodyPartTemplateTitle.class) {
+			switch (derivedFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == StereotypePropertyAttribute.class) {
+			switch (baseFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == IBodySectionPartTemplate.class) {
+			switch (baseFeatureID) {
+			case DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE__GENERATE:
+				return UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE;
+			case DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE__GENERATE_TITLE:
+				return UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_TITLE;
+			case DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE__CUSTOM_TITLE:
+				return UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__CUSTOM_TITLE;
+			case DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE__GENERATE_BRANCH_CONDITION:
+				return UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH__GENERATE_BRANCH_CONDITION;
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == IBodyPartTemplate.class) {
+			switch (baseFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == ILeafBodyPartTemplate.class) {
+			switch (baseFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == ITemplatePartView.class) {
+			switch (baseFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == IUMLBodyPartTemplateTitle.class) {
+			switch (baseFeatureID) {
+			default:
+				return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == StereotypePropertyAttribute.class) {
+			switch (baseOperationID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == IBodySectionPartTemplate.class) {
+			switch (baseOperationID) {
+			case DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE___BUILD_PART_TEMPLATE_TITLE__EOBJECT:
+				return UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH___BUILD_PART_TEMPLATE_TITLE__EOBJECT;
+			case DocumentStructureTemplatePackage.IBODY_SECTION_PART_TEMPLATE___GENERATE_BRANCH__EOBJECT:
+				return UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH___GENERATE_BRANCH__EOBJECT;
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == IBodyPartTemplate.class) {
+			switch (baseOperationID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == ILeafBodyPartTemplate.class) {
+			switch (baseOperationID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == ITemplatePartView.class) {
+			switch (baseOperationID) {
+			default:
+				return -1;
+			}
+		}
+		if (baseClass == IUMLBodyPartTemplateTitle.class) {
+			switch (baseOperationID) {
+			default:
+				return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH___BUILD_PART_TEMPLATE_TITLE__EOBJECT:
+			return buildPartTemplateTitle((EObject) arguments.get(0));
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH___GENERATE_BRANCH__EOBJECT:
+			return generateBranch((EObject) arguments.get(0));
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (generate: "); //$NON-NLS-1$
+		result.append(generate);
+		result.append(", generateTitle: "); //$NON-NLS-1$
+		result.append(generateTitle);
+		result.append(", customTitle: "); //$NON-NLS-1$
+		result.append(customTitle);
+		result.append(')');
+		return result.toString();
+	}
+
+} // StereotypePropertyAttributeAsParagraphImpl
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/UMLDocumentStructureTemplateFactoryImpl.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/UMLDocumentStructureTemplateFactoryImpl.java
index f018c95..6dc8ce0 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/UMLDocumentStructureTemplateFactoryImpl.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/UMLDocumentStructureTemplateFactoryImpl.java
@@ -87,6 +87,8 @@
 			return createStereotypePropertyReferenceListItemTemplate();
 		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_LIST_ITEM_TEMPLATE:
 			return createStereotypePropertyAttributeListItemTemplate();
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH:
+			return createStereotypePropertyAttributeAsParagraph();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
@@ -230,6 +232,18 @@
 	 *
 	 * @generated
 	 */
+	@Override
+	public StereotypePropertyAttributeAsParagraph createStereotypePropertyAttributeAsParagraph() {
+		StereotypePropertyAttributeAsParagraphImpl stereotypePropertyAttributeAsParagraph = new StereotypePropertyAttributeAsParagraphImpl();
+		return stereotypePropertyAttributeAsParagraph;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	public StereotypeFilterBehavior createStereotypeFilterBehaviorFromString(EDataType eDataType, String initialValue) {
 		StereotypeFilterBehavior result = StereotypeFilterBehavior.get(initialValue);
 		if (result == null)
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/UMLDocumentStructureTemplatePackageImpl.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/UMLDocumentStructureTemplatePackageImpl.java
index de3f3ea..8af62da 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/UMLDocumentStructureTemplatePackageImpl.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/impl/UMLDocumentStructureTemplatePackageImpl.java
@@ -42,6 +42,7 @@
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypeListItemTemplate;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePartTemplate;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttribute;
+import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeListItemTemplate;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyColumn;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyListItemTemplate;
@@ -216,6 +217,14 @@
 	 *
 	 * @generated
 	 */
+	private EClass stereotypePropertyAttributeAsParagraphEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	private EEnum stereotypeFilterBehaviorEEnum = null;
 
 	/**
@@ -617,6 +626,17 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getStereotypePropertyAttributeAsParagraph() {
+		return stereotypePropertyAttributeAsParagraphEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public EEnum getStereotypeFilterBehavior() {
 		return stereotypeFilterBehaviorEEnum;
 	}
@@ -711,6 +731,8 @@
 
 		stereotypePropertyAttributeEClass = createEClass(STEREOTYPE_PROPERTY_ATTRIBUTE);
 
+		stereotypePropertyAttributeAsParagraphEClass = createEClass(STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH);
+
 		// Create enums
 		stereotypeFilterBehaviorEEnum = createEEnum(STEREOTYPE_FILTER_BEHAVIOR);
 		commentChoiceEEnum = createEEnum(COMMENT_CHOICE);
@@ -784,6 +806,11 @@
 		stereotypePropertyAttributeListItemTemplateEClass.getESuperTypes().add(this.getStereotypePropertyListItemTemplate());
 		stereotypePropertyAttributeListItemTemplateEClass.getESuperTypes().add(theDocumentStructureTemplatePackage.getILeafListItemTemplate());
 		stereotypePropertyAttributeListItemTemplateEClass.getESuperTypes().add(this.getStereotypePropertyAttribute());
+		stereotypePropertyAttributeAsParagraphEClass.getESuperTypes().add(this.getStereotypePropertyTemplate());
+		stereotypePropertyAttributeAsParagraphEClass.getESuperTypes().add(this.getStereotypePropertyAttribute());
+		stereotypePropertyAttributeAsParagraphEClass.getESuperTypes().add(theDocumentStructureTemplatePackage.getILeafBodyPartTemplate());
+		stereotypePropertyAttributeAsParagraphEClass.getESuperTypes().add(theDocumentStructureTemplatePackage.getITemplatePartView());
+		stereotypePropertyAttributeAsParagraphEClass.getESuperTypes().add(this.getIUMLBodyPartTemplateTitle());
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(stereotypePartTemplateEClass, StereotypePartTemplate.class, "StereotypePartTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
@@ -845,6 +872,8 @@
 
 		initEClass(stereotypePropertyAttributeEClass, StereotypePropertyAttribute.class, "StereotypePropertyAttribute", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
+		initEClass(stereotypePropertyAttributeAsParagraphEClass, StereotypePropertyAttributeAsParagraph.class, "StereotypePropertyAttributeAsParagraph", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
 		// Initialize enums and add enum literals
 		initEEnum(stereotypeFilterBehaviorEEnum, StereotypeFilterBehavior.class, "StereotypeFilterBehavior"); //$NON-NLS-1$
 		addEEnumLiteral(stereotypeFilterBehaviorEEnum, StereotypeFilterBehavior.STEREOTYPE_TYPE_OF);
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateAdapterFactory.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateAdapterFactory.java
index 401f5c0..267a665 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateAdapterFactory.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateAdapterFactory.java
@@ -192,6 +192,11 @@
 		}
 
 		@Override
+		public Adapter caseStereotypePropertyAttributeAsParagraph(StereotypePropertyAttributeAsParagraph object) {
+			return createStereotypePropertyAttributeAsParagraphAdapter();
+		}
+
+		@Override
 		public Adapter caseEClassTemplate(EClassTemplate object) {
 			return createEClassTemplateAdapter();
 		}
@@ -564,6 +569,21 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph <em>Stereotype Property Attribute As Paragraph</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.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph
+	 * @generated
+	 */
+	public Adapter createStereotypePropertyAttributeAsParagraphAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.EClassTemplate <em>EClass Template</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateSwitch.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateSwitch.java
index 0dcf7dc..ac56d0d 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateSwitch.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateSwitch.java
@@ -450,6 +450,38 @@
 			}
 			return result;
 		}
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH: {
+			StereotypePropertyAttributeAsParagraph stereotypePropertyAttributeAsParagraph = (StereotypePropertyAttributeAsParagraph) theEObject;
+			T result = caseStereotypePropertyAttributeAsParagraph(stereotypePropertyAttributeAsParagraph);
+			if (result == null) {
+				result = caseStereotypePropertyTemplate(stereotypePropertyAttributeAsParagraph);
+			}
+			if (result == null) {
+				result = caseStereotypePropertyAttribute(stereotypePropertyAttributeAsParagraph);
+			}
+			if (result == null) {
+				result = caseILeafBodyPartTemplate(stereotypePropertyAttributeAsParagraph);
+			}
+			if (result == null) {
+				result = caseITemplatePartView(stereotypePropertyAttributeAsParagraph);
+			}
+			if (result == null) {
+				result = caseIUMLBodyPartTemplateTitle(stereotypePropertyAttributeAsParagraph);
+			}
+			if (result == null) {
+				result = caseStereotypeTemplate(stereotypePropertyAttributeAsParagraph);
+			}
+			if (result == null) {
+				result = caseIBodyPartTemplate(stereotypePropertyAttributeAsParagraph);
+			}
+			if (result == null) {
+				result = caseIBodySectionPartTemplate(stereotypePropertyAttributeAsParagraph);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
 		default:
 			return defaultCase(theEObject);
 		}
@@ -762,6 +794,23 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Stereotype Property Attribute As Paragraph</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>Stereotype Property Attribute As Paragraph</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStereotypePropertyAttributeAsParagraph(StereotypePropertyAttributeAsParagraph object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EClass Template</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateValidator.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateValidator.java
index aa8bc13..acb67b2 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateValidator.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src-gen/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/util/UMLDocumentStructureTemplateValidator.java
@@ -152,6 +152,8 @@
 			return validateStereotypePropertyAttributeListItemTemplate((StereotypePropertyAttributeListItemTemplate) value, diagnostics, context);
 		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE:
 			return validateStereotypePropertyAttribute((StereotypePropertyAttribute) value, diagnostics, context);
+		case UMLDocumentStructureTemplatePackage.STEREOTYPE_PROPERTY_ATTRIBUTE_AS_PARAGRAPH:
+			return validateStereotypePropertyAttributeAsParagraph((StereotypePropertyAttributeAsParagraph) value, diagnostics, context);
 		case UMLDocumentStructureTemplatePackage.STEREOTYPE_FILTER_BEHAVIOR:
 			return validateStereotypeFilterBehavior((StereotypeFilterBehavior) value, diagnostics, context);
 		case UMLDocumentStructureTemplatePackage.COMMENT_CHOICE:
@@ -347,6 +349,16 @@
 	 *
 	 * @generated
 	 */
+	public boolean validateStereotypePropertyAttributeAsParagraph(StereotypePropertyAttributeAsParagraph stereotypePropertyAttributeAsParagraph, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(stereotypePropertyAttributeAsParagraph, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	public boolean validateStereotypeFilterBehavior(StereotypeFilterBehavior stereotypeFilterBehavior, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		return true;
 	}
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/internal/operations/UMLBodySectionPartTemplateTitleHelper.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/internal/operations/UMLBodySectionPartTemplateTitleHelper.java
index 6c1304e..1f8de55 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/internal/operations/UMLBodySectionPartTemplateTitleHelper.java
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.documentstructuretemplate/src/org/eclipse/papyrus/model2doc/uml/documentstructuretemplate/internal/operations/UMLBodySectionPartTemplateTitleHelper.java
@@ -20,6 +20,7 @@
 import org.eclipse.papyrus.model2doc.emf.documentstructuretemplate.operations.BodySectionPartTemplateTitleOperations;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.CommentAsParagraph;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePartTemplate;
+import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyReferencePartTemplate;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyReferenceTableView;
 import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.internal.providers.UMLDelegatingToEMFLabelProvider;
@@ -76,10 +77,25 @@
 		if (partTemplate instanceof StereotypePropertyReferenceTableView) {
 			return buildStereotypePropertyReferenceTableViewTitle((StereotypePropertyReferenceTableView) partTemplate);
 		}
+		if (partTemplate instanceof StereotypePropertyAttributeAsParagraph) {
+			return buildStereotypePropertyAttributeAsParagraphTitle((StereotypePropertyAttributeAsParagraph) partTemplate);
+
+		}
 		return super.internalBuildPartTemplateTitle(partTemplate, parameter);
 	}
 
 	/**
+	 * @param partTemplate
+	 * @return
+	 */
+	private String buildStereotypePropertyAttributeAsParagraphTitle(final StereotypePropertyAttributeAsParagraph partTemplate) {
+		if (null != partTemplate.getPropertyName() && false == partTemplate.getPropertyName().isEmpty()) {
+			return partTemplate.getPropertyName();
+		}
+		return "No Property Name";//$NON-NLS-1$
+	}
+
+	/**
 	 *
 	 * @param StereotypePropertyReferenceTableView
 	 *            a {@link StereotypePropertyReferenceTableView} element
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.template2structure/plugin.xml b/plugins/uml/org.eclipse.papyrus.model2doc.uml.template2structure/plugin.xml
index a9aec39..ed797e1 100755
--- a/plugins/uml/org.eclipse.papyrus.model2doc.uml.template2structure/plugin.xml
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.template2structure/plugin.xml
@@ -19,6 +19,10 @@
              class="org.eclipse.papyrus.model2doc.uml.template2structure.internal.mappers.StereotypePropertyReferenceTableViewMapper"
              generatorId="TextDocumentStructureGenerator.default">
        </mapper>
+       <mapper
+             class="org.eclipse.papyrus.model2doc.uml.template2structure.internal.mappers.StereotypePropertyAttributeAsParagraphMapper"
+             generatorId="TextDocumentStructureGenerator.default">
+       </mapper>
    </extension>
 
 </plugin>
diff --git a/plugins/uml/org.eclipse.papyrus.model2doc.uml.template2structure/src/org/eclipse/papyrus/model2doc/uml/template2structure/internal/mappers/StereotypePropertyAttributeAsParagraphMapper.java b/plugins/uml/org.eclipse.papyrus.model2doc.uml.template2structure/src/org/eclipse/papyrus/model2doc/uml/template2structure/internal/mappers/StereotypePropertyAttributeAsParagraphMapper.java
new file mode 100755
index 0000000..1887448
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.model2doc.uml.template2structure/src/org/eclipse/papyrus/model2doc/uml/template2structure/internal/mappers/StereotypePropertyAttributeAsParagraphMapper.java
@@ -0,0 +1,93 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST 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
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * 	Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.model2doc.uml.template2structure.internal.mappers;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.BodyPart;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.Paragraph;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.Title;
+import org.eclipse.papyrus.model2doc.emf.template2structure.mapping.IMappingService;
+import org.eclipse.papyrus.model2doc.uml.documentstructuretemplate.StereotypePropertyAttributeAsParagraph;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * This mapper converts the StereotypePropertyAttributeAsParagraph into {@link Paragraph}
+ */
+public class StereotypePropertyAttributeAsParagraphMapper extends AbstractUMLTemplateToStructureMapper<StereotypePropertyAttributeAsParagraph> {
+
+	private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
+	/**
+	 * Constructor.
+	 *
+	 * @param inputEClass
+	 * @param outputClass
+	 */
+	public StereotypePropertyAttributeAsParagraphMapper() {
+		super(TEMPLATE_EPACKAGE.getStereotypePropertyAttributeAsParagraph(), BodyPart.class);
+	}
+
+	/**
+	 * @see org.eclipse.papyrus.model2doc.emf.template2structure.mapping.AbstractTemplateToStructureMapper#doMap(org.eclipse.papyrus.model2doc.emf.template2structure.mapping.IMappingService, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject,
+	 *      java.lang.Class)
+	 *
+	 * @param <T>
+	 * @param mappingService
+	 * @param documentTemplateElement
+	 * @param semanticModelElement
+	 * @param expectedReturnedClass
+	 * @return
+	 */
+	@Override
+	protected <T> List<T> doMap(IMappingService mappingService, StereotypePropertyAttributeAsParagraph documentTemplateElement, EObject semanticModelElement, Class<T> expectedReturnedClass) {
+		if (false == documentTemplateElement.generateBranch(semanticModelElement)) {
+			return Collections.emptyList();
+		}
+		if (false == documentTemplateElement.isGenerate() || false == semanticModelElement instanceof Element) {
+			// This element can't have children, so if isGenerate() returns false, we go out!
+			return Collections.emptyList();
+		}
+		final List<T> returnedValue = new ArrayList<>();
+
+		final Iterator<Object> commentIter = documentTemplateElement.getStereotypePropertyValues(semanticModelElement).iterator();
+		Title title = null;
+		if (commentIter.hasNext() && documentTemplateElement.isGenerateTitle()) {
+			title = STRUCTURE_EFACTORY.createTitle();
+			title.setTitle(documentTemplateElement.buildPartTemplateTitle(null));
+			returnedValue.add(expectedReturnedClass.cast(title));
+		}
+		while (commentIter.hasNext()) {
+			final Paragraph paragraph = STRUCTURE_EFACTORY.createParagraph();
+			Object value = commentIter.next();
+			if (value == null) {
+				value = EMPTY_STRING;
+			}
+			paragraph.setText(value.toString());
+			if (null == title) {
+				returnedValue.add(expectedReturnedClass.cast(paragraph));
+			} else {
+				title.getSubBodyParts().add(paragraph);
+			}
+		}
+		return returnedValue;
+	}
+
+}