Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2018-05-13 03:47:21 -0400
committerEd Willink2018-05-13 03:47:21 -0400
commit5844fbd4d02000216a4fafeccef91e0b02e09fb4 (patch)
tree8a803550d87bd3ac99df68ce9a16fe34abcfbe29
parent18cc247f8413828ad9c503c20ea3894086f127d4 (diff)
downloadorg.eclipse.qvtd-5844fbd4d02000216a4fafeccef91e0b02e09fb4.tar.gz
org.eclipse.qvtd-5844fbd4d02000216a4fafeccef91e0b02e09fb4.tar.xz
org.eclipse.qvtd-5844fbd4d02000216a4fafeccef91e0b02e09fb4.zip
[534575] Add StringNode::endText
-rw-r--r--plugins/org.eclipse.qvtd.text/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.qvtd.text/.settings/org.eclipse.core.runtime.prefs2
-rw-r--r--plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/StringNode.java55
-rw-r--r--plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/TextModelPackage.java70
-rw-r--r--plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/StringNodeImpl.java270
-rw-r--r--plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/TextModelPackageImpl.java34
-rw-r--r--plugins/org.eclipse.qvtd.text/model/TextModel.ecore123
-rw-r--r--plugins/org.eclipse.qvtd.text/model/TextModel.genmodel44
-rw-r--r--plugins/org.eclipse.qvtd.text/src/org/eclipse/qvtd/text/utilities/TextModelResourceImpl.java3
-rw-r--r--plugins/org.eclipse.qvtd.xml/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.qvtd.xml/.settings/org.eclipse.core.runtime.prefs2
-rw-r--r--plugins/org.eclipse.qvtd.xml/model/XMLmodel.ecore318
-rw-r--r--plugins/org.eclipse.qvtd.xml/model/XMLmodel.genmodel96
13 files changed, 640 insertions, 381 deletions
diff --git a/plugins/org.eclipse.qvtd.text/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.qvtd.text/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..99f26c020
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.text/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/plugins/org.eclipse.qvtd.text/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.qvtd.text/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 000000000..5a0ad22d2
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.text/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/StringNode.java b/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/StringNode.java
index 6f054ab99..88d8d0e8d 100644
--- a/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/StringNode.java
+++ b/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/StringNode.java
@@ -24,7 +24,7 @@ import org.eclipse.emf.ecore.EObject;
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
- * A tree of StringNodes provides a hierarchical text structure with an optional cumulative indent, prefix, separator and suffix for child nodes.
+ * A tree of StringNodes provides a hierarchical text structure with an optional cumulative indent, prefix, separator and suffix for child nodes between text and endText contributions.
* <!-- end-model-doc -->
*
* <p>
@@ -32,7 +32,9 @@ import org.eclipse.emf.ecore.EObject;
* </p>
* <ul>
* <li>{@link org.eclipse.qvtd.text.StringNode#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.qvtd.text.StringNode#getEndText <em>End Text</em>}</li>
* <li>{@link org.eclipse.qvtd.text.StringNode#getIndent <em>Indent</em>}</li>
+ * <li>{@link org.eclipse.qvtd.text.StringNode#getNonBreakingSpace <em>Non Breaking Space</em>}</li>
* <li>{@link org.eclipse.qvtd.text.StringNode#getParent <em>Parent</em>}</li>
* <li>{@link org.eclipse.qvtd.text.StringNode#getPrefix <em>Prefix</em>}</li>
* <li>{@link org.eclipse.qvtd.text.StringNode#getSeparator <em>Separator</em>}</li>
@@ -63,6 +65,32 @@ public interface StringNode extends EObject {
EList<StringNode> getChildren();
/**
+ * Returns the value of the '<em><b>End Text</b></em>' attribute.
+ * The default value is <code>""</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Optional closing text of this StringTree that follows all children (and suffix).
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>End Text</em>' attribute.
+ * @see #setEndText(String)
+ * @see org.eclipse.qvtd.text.TextModelPackage#getStringNode_EndText()
+ * @model default="" required="true" ordered="false"
+ * @generated
+ */
+ String getEndText();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.text.StringNode#getEndText <em>End Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>End Text</em>' attribute.
+ * @see #getEndText()
+ * @generated
+ */
+ void setEndText(String value);
+
+ /**
* Returns the value of the '<em><b>Indent</b></em>' attribute.
* The default value is <code>""</code>.
* <!-- begin-user-doc -->
@@ -89,6 +117,31 @@ public interface StringNode extends EObject {
void setIndent(String value);
/**
+ * Returns the value of the '<em><b>Non Breaking Space</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Optional character whose occurrence within text and endText is to be interpreted as a non-breaking-space. (All characters within indent, prefix, separator and suffix are non-breaking.)
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Non Breaking Space</em>' attribute.
+ * @see #setNonBreakingSpace(char)
+ * @see org.eclipse.qvtd.text.TextModelPackage#getStringNode_NonBreakingSpace()
+ * @model ordered="false"
+ * @generated
+ */
+ char getNonBreakingSpace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.text.StringNode#getNonBreakingSpace <em>Non Breaking Space</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Non Breaking Space</em>' attribute.
+ * @see #getNonBreakingSpace()
+ * @generated
+ */
+ void setNonBreakingSpace(char value);
+
+ /**
* Returns the value of the '<em><b>Parent</b></em>' container reference.
* It is bidirectional and its opposite is '{@link org.eclipse.qvtd.text.StringNode#getChildren <em>Children</em>}'.
* <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/TextModelPackage.java b/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/TextModelPackage.java
index 6e0db10dd..15553d73c 100644
--- a/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/TextModelPackage.java
+++ b/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/TextModelPackage.java
@@ -88,13 +88,31 @@ public interface TextModelPackage extends EPackage {
int STRING_NODE__CHILDREN = 0;
/**
+ * The feature id for the '<em><b>End Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_NODE__END_TEXT = 1;
+
+ /**
* The feature id for the '<em><b>Indent</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int STRING_NODE__INDENT = 1;
+ int STRING_NODE__INDENT = 2;
+
+ /**
+ * The feature id for the '<em><b>Non Breaking Space</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_NODE__NON_BREAKING_SPACE = 3;
/**
* The feature id for the '<em><b>Parent</b></em>' container reference.
@@ -103,7 +121,7 @@ public interface TextModelPackage extends EPackage {
* @generated
* @ordered
*/
- int STRING_NODE__PARENT = 2;
+ int STRING_NODE__PARENT = 4;
/**
* The feature id for the '<em><b>Prefix</b></em>' attribute.
@@ -112,7 +130,7 @@ public interface TextModelPackage extends EPackage {
* @generated
* @ordered
*/
- int STRING_NODE__PREFIX = 3;
+ int STRING_NODE__PREFIX = 5;
/**
* The feature id for the '<em><b>Separator</b></em>' attribute.
@@ -121,7 +139,7 @@ public interface TextModelPackage extends EPackage {
* @generated
* @ordered
*/
- int STRING_NODE__SEPARATOR = 4;
+ int STRING_NODE__SEPARATOR = 6;
/**
* The feature id for the '<em><b>Suffix</b></em>' attribute.
@@ -130,7 +148,7 @@ public interface TextModelPackage extends EPackage {
* @generated
* @ordered
*/
- int STRING_NODE__SUFFIX = 5;
+ int STRING_NODE__SUFFIX = 7;
/**
* The feature id for the '<em><b>Text</b></em>' attribute.
@@ -139,7 +157,7 @@ public interface TextModelPackage extends EPackage {
* @generated
* @ordered
*/
- int STRING_NODE__TEXT = 6;
+ int STRING_NODE__TEXT = 8;
/**
* The number of structural features of the '<em>String Node</em>' class.
@@ -148,7 +166,7 @@ public interface TextModelPackage extends EPackage {
* @generated
* @ordered
*/
- int STRING_NODE_FEATURE_COUNT = 7;
+ int STRING_NODE_FEATURE_COUNT = 9;
/**
* The number of operations of the '<em>String Node</em>' class.
@@ -182,6 +200,17 @@ public interface TextModelPackage extends EPackage {
EReference getStringNode_Children();
/**
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.text.StringNode#getEndText <em>End Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>End Text</em>'.
+ * @see org.eclipse.qvtd.text.StringNode#getEndText()
+ * @see #getStringNode()
+ * @generated
+ */
+ EAttribute getStringNode_EndText();
+
+ /**
* Returns the meta object for the attribute '{@link org.eclipse.qvtd.text.StringNode#getIndent <em>Indent</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -193,6 +222,17 @@ public interface TextModelPackage extends EPackage {
EAttribute getStringNode_Indent();
/**
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.text.StringNode#getNonBreakingSpace <em>Non Breaking Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Non Breaking Space</em>'.
+ * @see org.eclipse.qvtd.text.StringNode#getNonBreakingSpace()
+ * @see #getStringNode()
+ * @generated
+ */
+ EAttribute getStringNode_NonBreakingSpace();
+
+ /**
* Returns the meta object for the container reference '{@link org.eclipse.qvtd.text.StringNode#getParent <em>Parent</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -289,6 +329,14 @@ public interface TextModelPackage extends EPackage {
EReference STRING_NODE__CHILDREN = eINSTANCE.getStringNode_Children();
/**
+ * The meta object literal for the '<em><b>End Text</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STRING_NODE__END_TEXT = eINSTANCE.getStringNode_EndText();
+
+ /**
* The meta object literal for the '<em><b>Indent</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -297,6 +345,14 @@ public interface TextModelPackage extends EPackage {
EAttribute STRING_NODE__INDENT = eINSTANCE.getStringNode_Indent();
/**
+ * The meta object literal for the '<em><b>Non Breaking Space</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STRING_NODE__NON_BREAKING_SPACE = eINSTANCE.getStringNode_NonBreakingSpace();
+
+ /**
* The meta object literal for the '<em><b>Parent</b></em>' container reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/StringNodeImpl.java b/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/StringNodeImpl.java
index 52d2f848e..0a7dc1828 100644
--- a/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/StringNodeImpl.java
+++ b/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/StringNodeImpl.java
@@ -40,7 +40,9 @@ import org.eclipse.qvtd.text.TextModelPackage;
* </p>
* <ul>
* <li>{@link org.eclipse.qvtd.text.impl.StringNodeImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.qvtd.text.impl.StringNodeImpl#getEndText <em>End Text</em>}</li>
* <li>{@link org.eclipse.qvtd.text.impl.StringNodeImpl#getIndent <em>Indent</em>}</li>
+ * <li>{@link org.eclipse.qvtd.text.impl.StringNodeImpl#getNonBreakingSpace <em>Non Breaking Space</em>}</li>
* <li>{@link org.eclipse.qvtd.text.impl.StringNodeImpl#getParent <em>Parent</em>}</li>
* <li>{@link org.eclipse.qvtd.text.impl.StringNodeImpl#getPrefix <em>Prefix</em>}</li>
* <li>{@link org.eclipse.qvtd.text.impl.StringNodeImpl#getSeparator <em>Separator</em>}</li>
@@ -62,6 +64,26 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
protected EList<StringNode> children;
/**
+ * The default value of the '{@link #getEndText() <em>End Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEndText()
+ * @generated
+ * @ordered
+ */
+ protected static final String END_TEXT_EDEFAULT = "";
+
+ /**
+ * The cached value of the '{@link #getEndText() <em>End Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEndText()
+ * @generated
+ * @ordered
+ */
+ protected String endText = END_TEXT_EDEFAULT;
+
+ /**
* The default value of the '{@link #getIndent() <em>Indent</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -82,6 +104,26 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
protected String indent = INDENT_EDEFAULT;
/**
+ * The default value of the '{@link #getNonBreakingSpace() <em>Non Breaking Space</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNonBreakingSpace()
+ * @generated
+ * @ordered
+ */
+ protected static final char NON_BREAKING_SPACE_EDEFAULT = '\u0000';
+
+ /**
+ * The cached value of the '{@link #getNonBreakingSpace() <em>Non Breaking Space</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNonBreakingSpace()
+ * @generated
+ * @ordered
+ */
+ protected char nonBreakingSpace = NON_BREAKING_SPACE_EDEFAULT;
+
+ /**
* The default value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -198,6 +240,27 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
* <!-- end-user-doc -->
* @generated
*/
+ public String getEndText() {
+ return endText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEndText(String newEndText) {
+ String oldEndText = endText;
+ endText = newEndText;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TextModelPackage.STRING_NODE__END_TEXT, oldEndText, endText));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
@Override
public String getIndent() {
return indent;
@@ -221,6 +284,27 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
* <!-- end-user-doc -->
* @generated
*/
+ public char getNonBreakingSpace() {
+ return nonBreakingSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNonBreakingSpace(char newNonBreakingSpace) {
+ char oldNonBreakingSpace = nonBreakingSpace;
+ nonBreakingSpace = newNonBreakingSpace;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TextModelPackage.STRING_NODE__NON_BREAKING_SPACE, oldNonBreakingSpace, nonBreakingSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
@Override
public StringNode getParent() {
if (eContainerFeatureID() != TextModelPackage.STRING_NODE__PARENT) return null;
@@ -360,12 +444,12 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
- case TextModelPackage.STRING_NODE__CHILDREN:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs);
- case TextModelPackage.STRING_NODE__PARENT:
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return basicSetParent((StringNode)otherEnd, msgs);
+ case TextModelPackage.STRING_NODE__CHILDREN:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs);
+ case TextModelPackage.STRING_NODE__PARENT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetParent((StringNode)otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -378,10 +462,10 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
- case TextModelPackage.STRING_NODE__CHILDREN:
- return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
- case TextModelPackage.STRING_NODE__PARENT:
- return basicSetParent(null, msgs);
+ case TextModelPackage.STRING_NODE__CHILDREN:
+ return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
+ case TextModelPackage.STRING_NODE__PARENT:
+ return basicSetParent(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -394,8 +478,8 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
@Override
public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
switch (eContainerFeatureID()) {
- case TextModelPackage.STRING_NODE__PARENT:
- return eInternalContainer().eInverseRemove(this, TextModelPackage.STRING_NODE__CHILDREN, StringNode.class, msgs);
+ case TextModelPackage.STRING_NODE__PARENT:
+ return eInternalContainer().eInverseRemove(this, TextModelPackage.STRING_NODE__CHILDREN, StringNode.class, msgs);
}
return super.eBasicRemoveFromContainerFeature(msgs);
}
@@ -408,20 +492,24 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
- case TextModelPackage.STRING_NODE__CHILDREN:
- return getChildren();
- case TextModelPackage.STRING_NODE__INDENT:
- return getIndent();
- case TextModelPackage.STRING_NODE__PARENT:
- return getParent();
- case TextModelPackage.STRING_NODE__PREFIX:
- return getPrefix();
- case TextModelPackage.STRING_NODE__SEPARATOR:
- return getSeparator();
- case TextModelPackage.STRING_NODE__SUFFIX:
- return getSuffix();
- case TextModelPackage.STRING_NODE__TEXT:
- return getText();
+ case TextModelPackage.STRING_NODE__CHILDREN:
+ return getChildren();
+ case TextModelPackage.STRING_NODE__END_TEXT:
+ return getEndText();
+ case TextModelPackage.STRING_NODE__INDENT:
+ return getIndent();
+ case TextModelPackage.STRING_NODE__NON_BREAKING_SPACE:
+ return getNonBreakingSpace();
+ case TextModelPackage.STRING_NODE__PARENT:
+ return getParent();
+ case TextModelPackage.STRING_NODE__PREFIX:
+ return getPrefix();
+ case TextModelPackage.STRING_NODE__SEPARATOR:
+ return getSeparator();
+ case TextModelPackage.STRING_NODE__SUFFIX:
+ return getSuffix();
+ case TextModelPackage.STRING_NODE__TEXT:
+ return getText();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -435,28 +523,34 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
- case TextModelPackage.STRING_NODE__CHILDREN:
- getChildren().clear();
- getChildren().addAll((Collection<? extends StringNode>)newValue);
- return;
- case TextModelPackage.STRING_NODE__INDENT:
- setIndent((String)newValue);
- return;
- case TextModelPackage.STRING_NODE__PARENT:
- setParent((StringNode)newValue);
- return;
- case TextModelPackage.STRING_NODE__PREFIX:
- setPrefix((String)newValue);
- return;
- case TextModelPackage.STRING_NODE__SEPARATOR:
- setSeparator((String)newValue);
- return;
- case TextModelPackage.STRING_NODE__SUFFIX:
- setSuffix((String)newValue);
- return;
- case TextModelPackage.STRING_NODE__TEXT:
- setText((String)newValue);
- return;
+ case TextModelPackage.STRING_NODE__CHILDREN:
+ getChildren().clear();
+ getChildren().addAll((Collection<? extends StringNode>)newValue);
+ return;
+ case TextModelPackage.STRING_NODE__END_TEXT:
+ setEndText((String)newValue);
+ return;
+ case TextModelPackage.STRING_NODE__INDENT:
+ setIndent((String)newValue);
+ return;
+ case TextModelPackage.STRING_NODE__NON_BREAKING_SPACE:
+ setNonBreakingSpace((Character)newValue);
+ return;
+ case TextModelPackage.STRING_NODE__PARENT:
+ setParent((StringNode)newValue);
+ return;
+ case TextModelPackage.STRING_NODE__PREFIX:
+ setPrefix((String)newValue);
+ return;
+ case TextModelPackage.STRING_NODE__SEPARATOR:
+ setSeparator((String)newValue);
+ return;
+ case TextModelPackage.STRING_NODE__SUFFIX:
+ setSuffix((String)newValue);
+ return;
+ case TextModelPackage.STRING_NODE__TEXT:
+ setText((String)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -469,27 +563,33 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
@Override
public void eUnset(int featureID) {
switch (featureID) {
- case TextModelPackage.STRING_NODE__CHILDREN:
- getChildren().clear();
- return;
- case TextModelPackage.STRING_NODE__INDENT:
- setIndent(INDENT_EDEFAULT);
- return;
- case TextModelPackage.STRING_NODE__PARENT:
- setParent((StringNode)null);
- return;
- case TextModelPackage.STRING_NODE__PREFIX:
- setPrefix(PREFIX_EDEFAULT);
- return;
- case TextModelPackage.STRING_NODE__SEPARATOR:
- setSeparator(SEPARATOR_EDEFAULT);
- return;
- case TextModelPackage.STRING_NODE__SUFFIX:
- setSuffix(SUFFIX_EDEFAULT);
- return;
- case TextModelPackage.STRING_NODE__TEXT:
- setText(TEXT_EDEFAULT);
- return;
+ case TextModelPackage.STRING_NODE__CHILDREN:
+ getChildren().clear();
+ return;
+ case TextModelPackage.STRING_NODE__END_TEXT:
+ setEndText(END_TEXT_EDEFAULT);
+ return;
+ case TextModelPackage.STRING_NODE__INDENT:
+ setIndent(INDENT_EDEFAULT);
+ return;
+ case TextModelPackage.STRING_NODE__NON_BREAKING_SPACE:
+ setNonBreakingSpace(NON_BREAKING_SPACE_EDEFAULT);
+ return;
+ case TextModelPackage.STRING_NODE__PARENT:
+ setParent((StringNode)null);
+ return;
+ case TextModelPackage.STRING_NODE__PREFIX:
+ setPrefix(PREFIX_EDEFAULT);
+ return;
+ case TextModelPackage.STRING_NODE__SEPARATOR:
+ setSeparator(SEPARATOR_EDEFAULT);
+ return;
+ case TextModelPackage.STRING_NODE__SUFFIX:
+ setSuffix(SUFFIX_EDEFAULT);
+ return;
+ case TextModelPackage.STRING_NODE__TEXT:
+ setText(TEXT_EDEFAULT);
+ return;
}
super.eUnset(featureID);
}
@@ -502,20 +602,24 @@ public class StringNodeImpl extends MinimalEObjectImpl.Container implements Stri
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
- case TextModelPackage.STRING_NODE__CHILDREN:
- return children != null && !children.isEmpty();
- case TextModelPackage.STRING_NODE__INDENT:
- return INDENT_EDEFAULT == null ? indent != null : !INDENT_EDEFAULT.equals(indent);
- case TextModelPackage.STRING_NODE__PARENT:
- return getParent() != null;
- case TextModelPackage.STRING_NODE__PREFIX:
- return PREFIX_EDEFAULT == null ? prefix != null : !PREFIX_EDEFAULT.equals(prefix);
- case TextModelPackage.STRING_NODE__SEPARATOR:
- return SEPARATOR_EDEFAULT == null ? separator != null : !SEPARATOR_EDEFAULT.equals(separator);
- case TextModelPackage.STRING_NODE__SUFFIX:
- return SUFFIX_EDEFAULT == null ? suffix != null : !SUFFIX_EDEFAULT.equals(suffix);
- case TextModelPackage.STRING_NODE__TEXT:
- return TEXT_EDEFAULT == null ? text != null : !TEXT_EDEFAULT.equals(text);
+ case TextModelPackage.STRING_NODE__CHILDREN:
+ return children != null && !children.isEmpty();
+ case TextModelPackage.STRING_NODE__END_TEXT:
+ return END_TEXT_EDEFAULT == null ? endText != null : !END_TEXT_EDEFAULT.equals(endText);
+ case TextModelPackage.STRING_NODE__INDENT:
+ return INDENT_EDEFAULT == null ? indent != null : !INDENT_EDEFAULT.equals(indent);
+ case TextModelPackage.STRING_NODE__NON_BREAKING_SPACE:
+ return nonBreakingSpace != NON_BREAKING_SPACE_EDEFAULT;
+ case TextModelPackage.STRING_NODE__PARENT:
+ return getParent() != null;
+ case TextModelPackage.STRING_NODE__PREFIX:
+ return PREFIX_EDEFAULT == null ? prefix != null : !PREFIX_EDEFAULT.equals(prefix);
+ case TextModelPackage.STRING_NODE__SEPARATOR:
+ return SEPARATOR_EDEFAULT == null ? separator != null : !SEPARATOR_EDEFAULT.equals(separator);
+ case TextModelPackage.STRING_NODE__SUFFIX:
+ return SUFFIX_EDEFAULT == null ? suffix != null : !SUFFIX_EDEFAULT.equals(suffix);
+ case TextModelPackage.STRING_NODE__TEXT:
+ return TEXT_EDEFAULT == null ? text != null : !TEXT_EDEFAULT.equals(text);
}
return super.eIsSet(featureID);
}
diff --git a/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/TextModelPackageImpl.java b/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/TextModelPackageImpl.java
index 768100165..65d3a0476 100644
--- a/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/TextModelPackageImpl.java
+++ b/plugins/org.eclipse.qvtd.text/emf-gen/org/eclipse/qvtd/text/impl/TextModelPackageImpl.java
@@ -123,7 +123,7 @@ public class TextModelPackageImpl extends EPackageImpl implements TextModelPacka
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getStringNode_Indent() {
+ public EAttribute getStringNode_EndText() {
return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(1);
}
@@ -132,8 +132,26 @@ public class TextModelPackageImpl extends EPackageImpl implements TextModelPacka
* <!-- end-user-doc -->
* @generated
*/
+ public EAttribute getStringNode_Indent() {
+ return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStringNode_NonBreakingSpace() {
+ return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EReference getStringNode_Parent() {
- return (EReference)stringNodeEClass.getEStructuralFeatures().get(2);
+ return (EReference)stringNodeEClass.getEStructuralFeatures().get(4);
}
/**
@@ -142,7 +160,7 @@ public class TextModelPackageImpl extends EPackageImpl implements TextModelPacka
* @generated
*/
public EAttribute getStringNode_Prefix() {
- return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(3);
+ return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(5);
}
/**
@@ -151,7 +169,7 @@ public class TextModelPackageImpl extends EPackageImpl implements TextModelPacka
* @generated
*/
public EAttribute getStringNode_Separator() {
- return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(4);
+ return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(6);
}
/**
@@ -160,7 +178,7 @@ public class TextModelPackageImpl extends EPackageImpl implements TextModelPacka
* @generated
*/
public EAttribute getStringNode_Suffix() {
- return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(5);
+ return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(7);
}
/**
@@ -169,7 +187,7 @@ public class TextModelPackageImpl extends EPackageImpl implements TextModelPacka
* @generated
*/
public EAttribute getStringNode_Text() {
- return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(6);
+ return (EAttribute)stringNodeEClass.getEStructuralFeatures().get(8);
}
/**
@@ -202,7 +220,9 @@ public class TextModelPackageImpl extends EPackageImpl implements TextModelPacka
// Create classes and their features
stringNodeEClass = createEClass(STRING_NODE);
createEReference(stringNodeEClass, STRING_NODE__CHILDREN);
+ createEAttribute(stringNodeEClass, STRING_NODE__END_TEXT);
createEAttribute(stringNodeEClass, STRING_NODE__INDENT);
+ createEAttribute(stringNodeEClass, STRING_NODE__NON_BREAKING_SPACE);
createEReference(stringNodeEClass, STRING_NODE__PARENT);
createEAttribute(stringNodeEClass, STRING_NODE__PREFIX);
createEAttribute(stringNodeEClass, STRING_NODE__SEPARATOR);
@@ -242,7 +262,9 @@ public class TextModelPackageImpl extends EPackageImpl implements TextModelPacka
// Initialize classes, features, and operations; add parameters
initEClass(stringNodeEClass, StringNode.class, "StringNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getStringNode_Children(), this.getStringNode(), this.getStringNode_Parent(), "children", null, 0, -1, StringNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStringNode_EndText(), ecorePackage.getEString(), "endText", "", 1, 1, StringNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEAttribute(getStringNode_Indent(), ecorePackage.getEString(), "indent", "", 1, 1, StringNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getStringNode_NonBreakingSpace(), ecorePackage.getEChar(), "nonBreakingSpace", null, 0, 1, StringNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEReference(getStringNode_Parent(), this.getStringNode(), this.getStringNode_Children(), "parent", null, 0, 1, StringNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getStringNode_Prefix(), ecorePackage.getEString(), "prefix", "", 1, 1, StringNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEAttribute(getStringNode_Separator(), ecorePackage.getEString(), "separator", "", 1, 1, StringNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
diff --git a/plugins/org.eclipse.qvtd.text/model/TextModel.ecore b/plugins/org.eclipse.qvtd.text/model/TextModel.ecore
index b5a6a01cd..78da40639 100644
--- a/plugins/org.eclipse.qvtd.text/model/TextModel.ecore
+++ b/plugins/org.eclipse.qvtd.text/model/TextModel.ecore
@@ -1,55 +1,68 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="text" nsURI="http://www.eclipse.org/qvt/2018/TextModel" nsPrefix="text">
- <eClassifiers xsi:type="ecore:EClass" name="StringNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A tree of StringNodes provides a hierarchical text structure with an optional cumulative indent, prefix, separator and suffix for child nodes."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
- eType="#//StringNode" containment="true" eOpposite="#//StringNode/parent">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The child nodes to be preceded by an optional prefix, separated by an optional separatpr and followed by an optional suffix, with all lines preceded by the cumulative indent."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="indent" ordered="false"
- lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
- defaultValueLiteral="">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Optional additional indent for each child StringTree, in addition to the cumulative indent of all parent StringTrees."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//StringNode"
- eOpposite="#//StringNode/children">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The parent node that provides the cumulative indent."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="prefix" ordered="false"
- lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
- defaultValueLiteral="">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Optional prefix to precede the first child, if there is one."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="separator" ordered="false"
- lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
- defaultValueLiteral="">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Optional separator between eah child, if there are any."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="suffix" ordered="false"
- lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
- defaultValueLiteral="">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Optional suffix to follow the last child, if there is one."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" ordered="false" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral="">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Optional text of this StringTree to precede all chidren (and prefix)."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
-</ecore:EPackage>
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="text" nsURI="http://www.eclipse.org/qvt/2018/TextModel" nsPrefix="text">
+ <eClassifiers xsi:type="ecore:EClass" name="StringNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A tree of StringNodes provides a hierarchical text structure with an optional cumulative indent, prefix, separator and suffix for child nodes between text and endText contributions."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
+ eType="#//StringNode" containment="true" eOpposite="#//StringNode/parent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The child nodes to be preceded by an optional prefix, separated by an optional separatpr and followed by an optional suffix, with all lines preceded by the cumulative indent."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="endText" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional closing text of this StringTree that follows all children (and suffix)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="indent" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional additional indent for each child StringTree, in addition to the cumulative indent of all parent StringTrees."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonBreakingSpace" ordered="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EChar">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional character whose occurrence within text and endText is to be interpreted as a non-breaking-space. (All characters within indent, prefix, separator and suffix are non-breaking.) "/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//StringNode"
+ eOpposite="#//StringNode/children">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The parent node that provides the cumulative indent."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="prefix" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional prefix to precede the first child, if there is one."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="separator" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional separator between eah child, if there are any."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="suffix" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional suffix to follow the last child, if there is one."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional text of this StringTree to precede all chidren (and prefix)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.qvtd.text/model/TextModel.genmodel b/plugins/org.eclipse.qvtd.text/model/TextModel.genmodel
index 5d7cbe41e..9dcbd9089 100644
--- a/plugins/org.eclipse.qvtd.text/model/TextModel.genmodel
+++ b/plugins/org.eclipse.qvtd.text/model/TextModel.genmodel
@@ -1,21 +1,23 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
- xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="&lt;copyright>&#xA;&#xA;Copyright (c) 2018 Willink Transformations and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; E.D.Willink - Initial API and implementation&#xA;&#xA;&lt;/copyright>"
- modelDirectory="/org.eclipse.qvtd.text/emf-gen" modelPluginID="org.eclipse.qvtd.text"
- modelName="TextModel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
- importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
- operationReflection="true" importOrganizing="true">
- <foreignModel>TextModel.ecore</foreignModel>
- <genPackages prefix="TextModel" basePackage="org.eclipse.qvtd" disposableProviderFactory="true"
- generateExampleClass="false" ecorePackage="TextModel.ecore#/">
- <genClasses image="false" ecoreClass="TextModel.ecore#//StringNode">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TextModel.ecore#//StringNode/children"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/indent"/>
- <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TextModel.ecore#//StringNode/parent"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/prefix"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/separator"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/suffix"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/text"/>
- </genClasses>
- </genPackages>
-</genmodel:GenModel>
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="&lt;copyright>&#xA;&#xA;Copyright (c) 2018 Willink Transformations and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; E.D.Willink - Initial API and implementation&#xA;&#xA;&lt;/copyright>"
+ modelDirectory="/org.eclipse.qvtd.text/emf-gen" modelPluginID="org.eclipse.qvtd.text"
+ modelName="TextModel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>TextModel.ecore</foreignModel>
+ <genPackages prefix="TextModel" basePackage="org.eclipse.qvtd" disposableProviderFactory="true"
+ generateExampleClass="false" ecorePackage="TextModel.ecore#/">
+ <genClasses image="false" ecoreClass="TextModel.ecore#//StringNode">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TextModel.ecore#//StringNode/children"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/endText"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/indent"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/nonBreakingSpace"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TextModel.ecore#//StringNode/parent"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/prefix"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/separator"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/suffix"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TextModel.ecore#//StringNode/text"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.qvtd.text/src/org/eclipse/qvtd/text/utilities/TextModelResourceImpl.java b/plugins/org.eclipse.qvtd.text/src/org/eclipse/qvtd/text/utilities/TextModelResourceImpl.java
index c07467969..08bc92b7c 100644
--- a/plugins/org.eclipse.qvtd.text/src/org/eclipse/qvtd/text/utilities/TextModelResourceImpl.java
+++ b/plugins/org.eclipse.qvtd.text/src/org/eclipse/qvtd/text/utilities/TextModelResourceImpl.java
@@ -54,7 +54,7 @@ public class TextModelResourceImpl extends ResourceImpl
}
public static class TextModelSave
- {
+ { // FIXME Bug 534614 line-wrap to respect LINE_WIDTH save option
protected final @NonNull StringBuilder s = new StringBuilder();
protected final @NonNull Stack<@NonNull String> indentStack = new Stack<>();
private boolean indentPending = true; // AT beginning of first line, a first indent is pending
@@ -117,6 +117,7 @@ public class TextModelResourceImpl extends ResourceImpl
}
append(node.getSuffix());
}
+ append(node.getEndText());
indentStack.pop();
}
}
diff --git a/plugins/org.eclipse.qvtd.xml/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.qvtd.xml/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..99f26c020
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.xml/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/plugins/org.eclipse.qvtd.xml/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.qvtd.xml/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 000000000..5a0ad22d2
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.xml/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/plugins/org.eclipse.qvtd.xml/model/XMLmodel.ecore b/plugins/org.eclipse.qvtd.xml/model/XMLmodel.ecore
index 01a68cdf4..ec939eaf1 100644
--- a/plugins/org.eclipse.qvtd.xml/model/XMLmodel.ecore
+++ b/plugins/org.eclipse.qvtd.xml/model/XMLmodel.ecore
@@ -1,159 +1,159 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage
- xmi:version="2.0"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
- name="xml"
- nsURI="http://www.eclipse.org/qvt/2018/XML"
- nsPrefix="sax">
- <eClassifiers
- xsi:type="ecore:EClass"
- name="Attribute"
- eSuperTypes="#//Node">
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="name"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="value"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="CDATA"
- eSuperTypes="#//Node"/>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="Characters"
- eSuperTypes="#//Node">
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="data"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="Comment"
- eSuperTypes="#//Node">
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="data"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="DTD"
- eSuperTypes="#//Node">
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="name"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="publicId"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="systemId"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="Document"
- eSuperTypes="#//Node"/>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="Element"
- eSuperTypes="#//Node">
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="localName"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="qName"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="uri"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="Entity"
- eSuperTypes="#//Node">
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="name"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="Node"
- abstract="true">
- <eStructuralFeatures
- xsi:type="ecore:EReference"
- name="children"
- upperBound="-1"
- eType="#//Node"
- containment="true"/>
- </eClassifiers>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="PrefixMapping"
- eSuperTypes="#//Node">
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="prefix"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="uri"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers
- xsi:type="ecore:EClass"
- name="ProcessingInstruction"
- eSuperTypes="#//Node">
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="target"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures
- xsi:type="ecore:EAttribute"
- name="data"
- ordered="false"
- lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
-</ecore:EPackage>
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ name="xml"
+ nsURI="http://www.eclipse.org/qvt/2018/XML"
+ nsPrefix="sax">
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="Attribute"
+ eSuperTypes="#//Node">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="name"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="value"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="CDATA"
+ eSuperTypes="#//Node"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="Characters"
+ eSuperTypes="#//Node">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="data"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="Comment"
+ eSuperTypes="#//Node">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="data"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="DTD"
+ eSuperTypes="#//Node">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="name"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="publicId"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="systemId"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="Document"
+ eSuperTypes="#//Node"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="Element"
+ eSuperTypes="#//Node">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="localName"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="qName"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="uri"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="Entity"
+ eSuperTypes="#//Node">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="name"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="Node"
+ abstract="true">
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="children"
+ upperBound="-1"
+ eType="#//Node"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="PrefixMapping"
+ eSuperTypes="#//Node">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="prefix"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="uri"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="ProcessingInstruction"
+ eSuperTypes="#//Node">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="target"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="data"
+ ordered="false"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.qvtd.xml/model/XMLmodel.genmodel b/plugins/org.eclipse.qvtd.xml/model/XMLmodel.genmodel
index a34d9a814..eaed86b9d 100644
--- a/plugins/org.eclipse.qvtd.xml/model/XMLmodel.genmodel
+++ b/plugins/org.eclipse.qvtd.xml/model/XMLmodel.genmodel
@@ -1,48 +1,48 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
- xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="&lt;copyright>&#xA;&#xA;Copyright (c) 2018 Willink Transformations and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; E.D.Willink - Initial API and implementation&#xA;&#xA;&lt;/copyright>"
- modelDirectory="/org.eclipse.qvtd.xml/emf-gen" modelPluginID="org.eclipse.qvtd.xml"
- modelName="XMLmodel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
- importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
- operationReflection="true" importOrganizing="true">
- <foreignModel>XMLmodel.ecore</foreignModel>
- <genPackages prefix="XMLmodel" basePackage="org.eclipse.qvtd" disposableProviderFactory="true"
- generateExampleClass="false" ecorePackage="XMLmodel.ecore#/">
- <genClasses ecoreClass="XMLmodel.ecore#//Attribute">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Attribute/name"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Attribute/value"/>
- </genClasses>
- <genClasses ecoreClass="XMLmodel.ecore#//CDATA"/>
- <genClasses image="false" ecoreClass="XMLmodel.ecore#//Characters">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Characters/data"/>
- </genClasses>
- <genClasses ecoreClass="XMLmodel.ecore#//Comment">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Comment/data"/>
- </genClasses>
- <genClasses ecoreClass="XMLmodel.ecore#//DTD">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//DTD/name"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//DTD/publicId"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//DTD/systemId"/>
- </genClasses>
- <genClasses ecoreClass="XMLmodel.ecore#//Document"/>
- <genClasses ecoreClass="XMLmodel.ecore#//Element">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Element/localName"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Element/qName"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Element/uri"/>
- </genClasses>
- <genClasses ecoreClass="XMLmodel.ecore#//Entity">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Entity/name"/>
- </genClasses>
- <genClasses image="false" ecoreClass="XMLmodel.ecore#//Node">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XMLmodel.ecore#//Node/children"/>
- </genClasses>
- <genClasses ecoreClass="XMLmodel.ecore#//PrefixMapping">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//PrefixMapping/prefix"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//PrefixMapping/uri"/>
- </genClasses>
- <genClasses ecoreClass="XMLmodel.ecore#//ProcessingInstruction">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//ProcessingInstruction/target"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//ProcessingInstruction/data"/>
- </genClasses>
- </genPackages>
-</genmodel:GenModel>
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="&lt;copyright>&#xA;&#xA;Copyright (c) 2018 Willink Transformations and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; E.D.Willink - Initial API and implementation&#xA;&#xA;&lt;/copyright>"
+ modelDirectory="/org.eclipse.qvtd.xml/emf-gen" modelPluginID="org.eclipse.qvtd.xml"
+ modelName="XMLmodel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>XMLmodel.ecore</foreignModel>
+ <genPackages prefix="XMLmodel" basePackage="org.eclipse.qvtd" disposableProviderFactory="true"
+ generateExampleClass="false" ecorePackage="XMLmodel.ecore#/">
+ <genClasses ecoreClass="XMLmodel.ecore#//Attribute">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Attribute/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Attribute/value"/>
+ </genClasses>
+ <genClasses ecoreClass="XMLmodel.ecore#//CDATA"/>
+ <genClasses image="false" ecoreClass="XMLmodel.ecore#//Characters">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Characters/data"/>
+ </genClasses>
+ <genClasses ecoreClass="XMLmodel.ecore#//Comment">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Comment/data"/>
+ </genClasses>
+ <genClasses ecoreClass="XMLmodel.ecore#//DTD">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//DTD/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//DTD/publicId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//DTD/systemId"/>
+ </genClasses>
+ <genClasses ecoreClass="XMLmodel.ecore#//Document"/>
+ <genClasses ecoreClass="XMLmodel.ecore#//Element">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Element/localName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Element/qName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Element/uri"/>
+ </genClasses>
+ <genClasses ecoreClass="XMLmodel.ecore#//Entity">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//Entity/name"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="XMLmodel.ecore#//Node">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XMLmodel.ecore#//Node/children"/>
+ </genClasses>
+ <genClasses ecoreClass="XMLmodel.ecore#//PrefixMapping">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//PrefixMapping/prefix"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//PrefixMapping/uri"/>
+ </genClasses>
+ <genClasses ecoreClass="XMLmodel.ecore#//ProcessingInstruction">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//ProcessingInstruction/target"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XMLmodel.ecore#//ProcessingInstruction/data"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>

Back to the top