Added startsWith and endsWith collections services.
Change-Id: I2e66c289b430c66c19782a44b8c8b5ee6666a53f
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java
index 2f977de..f506de0 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java
@@ -2805,6 +2805,91 @@
return new ArrayList<T>(sequence.subList(startIndex - 1, endIndex));
}
+ // @formatter:off
+ @Documentation(
+ value = "Returns \"true\" if the sequence starts with other, \"false\" otherwise",
+ params = {
+ @Param(name = "sequence", value = "The Sequence or OrderedSet"),
+ @Param(name = "other", value = "The other Sequence or OrderedSet")
+ },
+ result = "\\\"true\\\" if the sequence starts with other, \\\"false\\\" otherwise",
+ examples = {
+ @Example(expression = "Sequence{'a', 'b', 'c'}->startsWith('a', 'b')", result = "true")
+ }
+ )
+ // @formatter:on
+ public <T> Boolean startsWith(Collection<T> collection, Collection<T> other) {
+ final boolean res;
+
+ if (other.size() > collection.size()) {
+ res = false;
+ } else {
+ final Iterator<T> collectionIt = collection.iterator();
+ final Iterator<T> otherIt = other.iterator();
+ res = equalsIterator(collectionIt, otherIt);
+ }
+
+ return res;
+ }
+
+ // @formatter:off
+ @Documentation(
+ value = "Returns \"true\" if the sequence ends with other, \"false\" otherwise",
+ params = {
+ @Param(name = "sequence", value = "The Sequence or OrderedSet"),
+ @Param(name = "other", value = "The other Sequence or OrderedSet")
+ },
+ result = "\\\"true\\\" if the sequence ends with other, \\\"false\\\" otherwise",
+ examples = {
+ @Example(expression = "Sequence{'a', 'b', 'c'}->endsWith('b', 'c')", result = "true")
+ }
+ )
+ // @formatter:on
+ public <T> Boolean endsWith(Collection<T> collection, Collection<T> other) {
+ final boolean res;
+
+ if (other.size() > collection.size()) {
+ res = false;
+ } else {
+ final Iterator<T> collectionIt = collection.iterator();
+ final Iterator<T> otherIt = other.iterator();
+ for (int i = 0; i < collection.size() - other.size(); i++) {
+ collectionIt.next();
+ }
+ res = equalsIterator(collectionIt, otherIt);
+ }
+
+ return res;
+ }
+
+ /**
+ * Tells if both given {@link Iterator} contains the same elements.
+ *
+ * @param <T>
+ * collections elements type
+ * @param collectionIt
+ * the first {@link Iterator}
+ * @param otherIt
+ * the second {@link Iterator}
+ * @return <code>true</code> if both given {@link Iterator} contains the same elements, <code>false</code>
+ * otherwise
+ */
+ private <T> boolean equalsIterator(final Iterator<T> collectionIt, final Iterator<T> otherIt) {
+ boolean res = true;
+
+ while (otherIt.hasNext()) {
+ final T element = collectionIt.next();
+ final T elementOther = otherIt.next();
+ if ((element != null && !element.equals(elementOther)) || (element == null
+ && elementOther != null)) {
+ res = false;
+ break;
+ }
+ }
+
+ return res;
+ }
+
/**
* Evaluates a lambda then uses the result as comparables.
*/
@@ -2852,4 +2937,5 @@
return result;
}
}
+
}
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/CompletionTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/CompletionTest.java
index 9ed6b7c..91e62a9 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/CompletionTest.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/CompletionTest.java
@@ -266,7 +266,7 @@
public void selfArrowTest() {
final ICompletionResult completionResult = engine.getCompletion("self->", 6, variableTypes);
- assertCompletion(completionResult, 46, "", "", 6, 0, "size()", "including()");
+ assertCompletion(completionResult, 48, "", "", 6, 0, "size()", "including()");
assertNoVariableCompletionProposal(completionResult);
assertNoFeatureCompletionProposal(completionResult);
assertNoEOperationCompletionProposal(completionResult);
@@ -290,7 +290,7 @@
final ICompletionResult arrowCompletionResult = engine.getCompletion("Sequence{self}->", 16,
variableTypes);
- assertCompletion(arrowCompletionResult, 45, "", "", 16, 0, "size()", "select()", "collect()");
+ assertCompletion(arrowCompletionResult, 47, "", "", 16, 0, "size()", "select()", "collect()");
}
@Test
@@ -561,7 +561,7 @@
final ICompletionResult completionResult = engine.getCompletion(
"self.eClassifiers->select(p | self->)", 36, variableTypes);
- assertCompletion(completionResult, 46, "", "", 36, 0, "size()", "first()");
+ assertCompletion(completionResult, 48, "", "", 36, 0, "size()", "first()");
assertNoVariableCompletionProposal(completionResult);
assertNoVariableDeclarationCompletionProposal(completionResult);
}
@@ -588,7 +588,7 @@
final ICompletionResult completionResult = engine.getCompletion(
"self.eClassifiers->select(w | self.eClassifiers->select(p | self->))", 66, variableTypes);
- assertCompletion(completionResult, 46, "", "", 66, 0, "size()", "first()");
+ assertCompletion(completionResult, 48, "", "", 66, 0, "size()", "first()");
assertNoVariableCompletionProposal(completionResult);
assertNoVariableDeclarationCompletionProposal(completionResult);
}
@@ -913,7 +913,7 @@
final ICompletionResult completionResult = engine.getCompletion("OrderedSet{}->", 14, types);
- assertCompletion(completionResult, 46, "", "", 14, 0, "size()", "first()");
+ assertCompletion(completionResult, 48, "", "", 14, 0, "size()", "first()");
assertNoEOperationCompletionProposal(completionResult);
assertNoVariableCompletionProposal(completionResult);
assertNoVariableDeclarationCompletionProposal(completionResult);
@@ -925,7 +925,7 @@
final ICompletionResult completionResult = engine.getCompletion("Sequence{}->", 12, types);
- assertCompletion(completionResult, 45, "", "", 12, 0, "size()", "first()");
+ assertCompletion(completionResult, 47, "", "", 12, 0, "size()", "first()");
assertNoEOperationCompletionProposal(completionResult);
assertNoVariableCompletionProposal(completionResult);
assertNoVariableDeclarationCompletionProposal(completionResult);
@@ -985,7 +985,7 @@
final ICompletionResult completionResult = engine.getCompletion("{ecore::EClass}->", 17,
variableTypes);
- assertCompletion(completionResult, 46, "", "", 17, 0, "size()", "first()");
+ assertCompletion(completionResult, 48, "", "", 17, 0, "size()", "first()");
assertNoVariableCompletionProposal(completionResult);
assertNoVariableDeclarationCompletionProposal(completionResult);
assertNoFeatureCompletionProposal(completionResult);
@@ -1138,7 +1138,7 @@
final ICompletionResult completionResult = engine.getCompletion("self->", 6, types);
- assertCompletion(completionResult, 46, "", "", 6, 0, "size()", "first()");
+ assertCompletion(completionResult, 48, "", "", 6, 0, "size()", "first()");
assertNoEOperationCompletionProposal(completionResult);
assertNoFeatureCompletionProposal(completionResult);
assertNoVariableCompletionProposal(completionResult);
@@ -1154,7 +1154,7 @@
final ICompletionResult completionResult = engine.getCompletion("self->", 6, types);
- assertCompletion(completionResult, 46, "", "", 6, 0, "size()", "first()");
+ assertCompletion(completionResult, 48, "", "", 6, 0, "size()", "first()");
assertNoVariableCompletionProposal(completionResult);
assertNoFeatureCompletionProposal(completionResult);
assertNoEOperationCompletionProposal(completionResult);
@@ -1170,7 +1170,7 @@
final ICompletionResult completionResult = engine.getCompletion("self->", 6, types);
- assertCompletion(completionResult, 45, "", "", 6, 0, "size()", "first()");
+ assertCompletion(completionResult, 47, "", "", 6, 0, "size()", "first()");
assertNoVariableCompletionProposal(completionResult);
assertNoFeatureCompletionProposal(completionResult);
assertNoEOperationCompletionProposal(completionResult);
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesTest.java
index ec75730..5b4a8c2 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesTest.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesTest.java
@@ -5365,4 +5365,151 @@
assertEquals(Integer.valueOf(3), it.next());
assertEquals(Integer.valueOf(4), it.next());
}
+
+ @Test(expected = NullPointerException.class)
+ public void testStartsWithNullNull() {
+ collectionServices.startsWith(null, null);
+ }
+
+ @Test
+ public void testStartsWithSequenceSequence() {
+ final List<Object> collection = new ArrayList<>();
+ collection.add(Integer.valueOf(1));
+ collection.add(Integer.valueOf(2));
+ collection.add(Integer.valueOf(3));
+ collection.add(Integer.valueOf(4));
+
+ final List<Object> other = new ArrayList<>();
+ other.add(Integer.valueOf(1));
+ other.add(Integer.valueOf(2));
+
+ final Boolean result = collectionServices.startsWith(collection, other);
+
+ assertTrue(result);
+ }
+
+ @Test
+ public void testStartsWithOrederedSetSequence() {
+ final Set<Object> collection = new LinkedHashSet<>();
+ collection.add(Integer.valueOf(1));
+ collection.add(Integer.valueOf(2));
+ collection.add(Integer.valueOf(3));
+ collection.add(Integer.valueOf(4));
+
+ final List<Object> other = new ArrayList<>();
+ other.add(Integer.valueOf(1));
+ other.add(Integer.valueOf(2));
+
+ final Boolean result = collectionServices.startsWith(collection, other);
+
+ assertTrue(result);
+ }
+
+ @Test
+ public void testStartsWithSequenceOrderedSet() {
+ final List<Object> collection = new ArrayList<>();
+ collection.add(Integer.valueOf(1));
+ collection.add(Integer.valueOf(2));
+ collection.add(Integer.valueOf(3));
+ collection.add(Integer.valueOf(4));
+
+ final Set<Object> other = new LinkedHashSet<>();
+ other.add(Integer.valueOf(1));
+ other.add(Integer.valueOf(2));
+
+ final Boolean result = collectionServices.startsWith(collection, other);
+
+ assertTrue(result);
+ }
+
+ @Test
+ public void testStartsWithOrderedSetOrderedSet() {
+ final Set<Object> collection = new LinkedHashSet<>();
+ collection.add(Integer.valueOf(1));
+ collection.add(Integer.valueOf(2));
+ collection.add(Integer.valueOf(3));
+ collection.add(Integer.valueOf(4));
+
+ final Set<Object> other = new LinkedHashSet<>();
+ other.add(Integer.valueOf(1));
+ other.add(Integer.valueOf(2));
+
+ final Boolean result = collectionServices.startsWith(collection, other);
+
+ assertTrue(result);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void testendsWithNullNull() {
+ collectionServices.endsWith(null, null);
+ }
+
+ @Test
+ public void testendsWithSequenceSequence() {
+ final List<Object> collection = new ArrayList<>();
+ collection.add(Integer.valueOf(1));
+ collection.add(Integer.valueOf(2));
+ collection.add(Integer.valueOf(3));
+ collection.add(Integer.valueOf(4));
+
+ final List<Object> other = new ArrayList<>();
+ other.add(Integer.valueOf(3));
+ other.add(Integer.valueOf(4));
+
+ final Boolean result = collectionServices.endsWith(collection, other);
+
+ assertTrue(result);
+ }
+
+ @Test
+ public void testendsWithOrederedSetSequence() {
+ final Set<Object> collection = new LinkedHashSet<>();
+ collection.add(Integer.valueOf(1));
+ collection.add(Integer.valueOf(2));
+ collection.add(Integer.valueOf(3));
+ collection.add(Integer.valueOf(4));
+
+ final List<Object> other = new ArrayList<>();
+ other.add(Integer.valueOf(3));
+ other.add(Integer.valueOf(4));
+
+ final Boolean result = collectionServices.endsWith(collection, other);
+
+ assertTrue(result);
+ }
+
+ @Test
+ public void testendsWithSequenceOrderedSet() {
+ final List<Object> collection = new ArrayList<>();
+ collection.add(Integer.valueOf(1));
+ collection.add(Integer.valueOf(2));
+ collection.add(Integer.valueOf(3));
+ collection.add(Integer.valueOf(4));
+
+ final Set<Object> other = new LinkedHashSet<>();
+ other.add(Integer.valueOf(3));
+ other.add(Integer.valueOf(4));
+
+ final Boolean result = collectionServices.endsWith(collection, other);
+
+ assertTrue(result);
+ }
+
+ @Test
+ public void testendsWithOrderedSetOrderedSet() {
+ final Set<Object> collection = new LinkedHashSet<>();
+ collection.add(Integer.valueOf(1));
+ collection.add(Integer.valueOf(2));
+ collection.add(Integer.valueOf(3));
+ collection.add(Integer.valueOf(4));
+
+ final Set<Object> other = new LinkedHashSet<>();
+ other.add(Integer.valueOf(3));
+ other.add(Integer.valueOf(4));
+
+ final Boolean result = collectionServices.endsWith(collection, other);
+
+ assertTrue(result);
+ }
+
}
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/generated/testOrderedSet b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/generated/testOrderedSet
index 0cc473b..1b2db78 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/generated/testOrderedSet
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/generated/testOrderedSet
@@ -353,4 +353,12 @@
@Test booleans -> subOrderedSet(1,2) => truefalse
@Test eClasses -> subOrderedSet(1,2) -> collect(name) => ClasseAClasseB
@Test collections -> subOrderedSet(1,2) => abcefg
+@Test integers -> startsWith(OrderedSet{1, 2}) => true
+@Test integers -> startsWith(OrderedSet{1, 1}) => true
+@Test integers -> startsWith(OrderedSet{1, 2}) => true
+@Test integers -> startsWith(OrderedSet{1, 1}) => true
+@Test integers -> endsWith(OrderedSet{2, 3}) => true
+@Test integers -> endsWith(OrderedSet{1, 1}) => false
+@Test integers -> endsWith(OrderedSet{2, 3}) => true
+@Test integers -> endsWith(OrderedSet{1, 1}) => false
@Test collections.oclAsSet() => abcefg
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/orderedSetsServices.mtl b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/orderedSetsServices.mtl
index a5a5b2f..385144d 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/orderedSetsServices.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/orderedSetsServices.mtl
@@ -393,9 +393,15 @@
[comment]A4-UNSUPPORTED selectByType[/comment]
[comment]A4-UNSUPPORTED selectByKind[/comment]
[comment]A4-UNSUPPORTED addAll[/comment]
-[comment]A4-UNSUPPORTED startsWith[/comment]
+@Test integers -> startsWith(OrderedSet{1, 2}) => [integers -> startsWith(OrderedSet{1, 2})/]
+@Test integers -> startsWith(OrderedSet{1, 1}) => [integers -> startsWith(OrderedSet{1, 1})/]
+@Test integers -> startsWith(OrderedSet{1, 2}) => [integers -> startsWith(OrderedSet{1, 2})/]
+@Test integers -> startsWith(OrderedSet{1, 1}) => [integers -> startsWith(OrderedSet{1, 1})/]
[comment]A4-UNSUPPORTED indexOfSlice[/comment]
-[comment]A4-UNSUPPORTED endsWith[/comment]
+@Test integers -> endsWith(OrderedSet{2, 3}) => [integers -> endsWith(OrderedSet{2, 3})/]
+@Test integers -> endsWith(OrderedSet{1, 1}) => [integers -> endsWith(OrderedSet{1, 1})/]
+@Test integers -> endsWith(OrderedSet{2, 3}) => [integers -> endsWith(OrderedSet{2, 3})/]
+@Test integers -> endsWith(OrderedSet{1, 1}) => [integers -> endsWith(OrderedSet{1, 1})/]
[comment]A4-UNSUPPORTED dropRight[/comment]
[comment]A4-UNSUPPORTED drop[/comment]
[comment]A4-UNSUPPORTED lastIndexOf[/comment]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/generated/testSequence b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/generated/testSequence
index 9650ed9..a7d66c8 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/generated/testSequence
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/generated/testSequence
@@ -355,3 +355,11 @@
@Test booleans -> subSequence(1,2) => truefalse
@Test eClasses -> subSequence(1,2) -> collect(name) => ClasseAClasseB
@Test collections -> subSequence(1,2) => abcefg
+@Test integers -> startsWith(OrderedSet{1, 2}) => true
+@Test integers -> startsWith(OrderedSet{1, 1}) => true
+@Test integers -> startsWith(OrderedSet{1, 2}) => true
+@Test integers -> startsWith(OrderedSet{1, 1}) => true
+@Test integers -> endsWith(OrderedSet{2, 3}) => true
+@Test integers -> endsWith(OrderedSet{1, 1}) => false
+@Test integers -> endsWith(OrderedSet{2, 3}) => true
+@Test integers -> endsWith(OrderedSet{1, 1}) => false
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/sequencesServices.mtl b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/sequencesServices.mtl
index 6a48f21..3e307950 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/sequencesServices.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/sequencesServices.mtl
@@ -392,9 +392,15 @@
[comment]A4-UNSUPPORTED selectByType[/comment]
[comment]A4-UNSUPPORTED selectByKind[/comment]
[comment]A4-UNSUPPORTED addAll[/comment]
-[comment]A4-UNSUPPORTED startsWith[/comment]
+@Test integers -> startsWith(OrderedSet{1, 2}) => [integers -> startsWith(OrderedSet{1, 2})/]
+@Test integers -> startsWith(OrderedSet{1, 1}) => [integers -> startsWith(OrderedSet{1, 1})/]
+@Test integers -> startsWith(OrderedSet{1, 2}) => [integers -> startsWith(OrderedSet{1, 2})/]
+@Test integers -> startsWith(OrderedSet{1, 1}) => [integers -> startsWith(OrderedSet{1, 1})/]
[comment]A4-UNSUPPORTED indexOfSlice[/comment]
-[comment]A4-UNSUPPORTED endsWith[/comment]
+@Test integers -> endsWith(OrderedSet{2, 3}) => [integers -> endsWith(OrderedSet{2, 3})/]
+@Test integers -> endsWith(OrderedSet{1, 1}) => [integers -> endsWith(OrderedSet{1, 1})/]
+@Test integers -> endsWith(OrderedSet{2, 3}) => [integers -> endsWith(OrderedSet{2, 3})/]
+@Test integers -> endsWith(OrderedSet{1, 1}) => [integers -> endsWith(OrderedSet{1, 1})/]
[comment]A4-UNSUPPORTED dropRight[/comment]
[comment]A4-UNSUPPORTED drop[/comment]
[comment]A4-UNSUPPORTED lastIndexOf[/comment]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/PASS b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/PASS
index 8f40d92..b4ad8d5 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/PASS
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/PASS
@@ -557,6 +557,14 @@
booleans -> subSequence(1,2)
eClasses -> subSequence(1,2) -> collect(name)
collections -> subSequence(1,2)
+ integers -> startsWith(OrderedSet{1, 2})
+ integers -> startsWith(OrderedSet{1, 1})
+ integers -> startsWith(OrderedSet{1, 2})
+ integers -> startsWith(OrderedSet{1, 1})
+ integers -> endsWith(OrderedSet{2, 3})
+ integers -> endsWith(OrderedSet{1, 1})
+ integers -> endsWith(OrderedSet{2, 3})
+ integers -> endsWith(OrderedSet{1, 1})
orderedSetsServices
strings.toString()
reals.toString()
@@ -876,4 +884,12 @@
booleans -> subOrderedSet(1,2)
eClasses -> subOrderedSet(1,2) -> collect(name)
collections -> subOrderedSet(1,2)
+ integers -> startsWith(OrderedSet{1, 2})
+ integers -> startsWith(OrderedSet{1, 1})
+ integers -> startsWith(OrderedSet{1, 2})
+ integers -> startsWith(OrderedSet{1, 1})
+ integers -> endsWith(OrderedSet{2, 3})
+ integers -> endsWith(OrderedSet{1, 1})
+ integers -> endsWith(OrderedSet{2, 3})
+ integers -> endsWith(OrderedSet{1, 1})
collections.oclAsSet()
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO
index 58bcf8a..decad6b 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO
@@ -48,7 +48,6 @@
collectNested
drop
dropRight
- endsWith
flatten
indexOfSlice
lastIndexOf
@@ -60,14 +59,12 @@
removeAll
selectByKind
selectByType
- startsWith
(LOT1) WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)
orderedSetsServices
addAll
collectNested
drop
dropRight
- endsWith
flatten
indexOfSlice
lastIndexOf
@@ -78,5 +75,4 @@
removeAll
selectByKind
selectByType
- startsWith
(LOT1) WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/generated/testOrderedSet-expected.txt b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/generated/testOrderedSet-expected.txt
index 0cc473b..1b2db78 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/generated/testOrderedSet-expected.txt
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/generated/testOrderedSet-expected.txt
@@ -353,4 +353,12 @@
@Test booleans -> subOrderedSet(1,2) => truefalse
@Test eClasses -> subOrderedSet(1,2) -> collect(name) => ClasseAClasseB
@Test collections -> subOrderedSet(1,2) => abcefg
+@Test integers -> startsWith(OrderedSet{1, 2}) => true
+@Test integers -> startsWith(OrderedSet{1, 1}) => true
+@Test integers -> startsWith(OrderedSet{1, 2}) => true
+@Test integers -> startsWith(OrderedSet{1, 1}) => true
+@Test integers -> endsWith(OrderedSet{2, 3}) => true
+@Test integers -> endsWith(OrderedSet{1, 1}) => false
+@Test integers -> endsWith(OrderedSet{2, 3}) => true
+@Test integers -> endsWith(OrderedSet{1, 1}) => false
@Test collections.oclAsSet() => abcefg
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected.mtl
index 6881aea..a2e4fa6 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected.mtl
@@ -364,6 +364,14 @@
@Test booleans -> subOrderedSet(1,2) => [booleans->subOrderedSet(1, 2)/]
@Test eClasses -> subOrderedSet(1,2) -> collect(name) => [eClasses->subOrderedSet(1, 2)->asSequence()->collect(temp65 | temp65.name)/]
@Test collections -> subOrderedSet(1,2) => [collections->subOrderedSet(1, 2)/]
+ @Test integers -> startsWith(OrderedSet{1, 2}) => [integers->startsWith(OrderedSet{1, 2})/]
+ @Test integers -> startsWith(OrderedSet{1, 1}) => [integers->startsWith(OrderedSet{1, 1})/]
+ @Test integers -> startsWith(OrderedSet{1, 2}) => [integers->startsWith(OrderedSet{1, 2})/]
+ @Test integers -> startsWith(OrderedSet{1, 1}) => [integers->startsWith(OrderedSet{1, 1})/]
+ @Test integers -> endsWith(OrderedSet{2, 3}) => [integers->endsWith(OrderedSet{2, 3})/]
+ @Test integers -> endsWith(OrderedSet{1, 1}) => [integers->endsWith(OrderedSet{1, 1})/]
+ @Test integers -> endsWith(OrderedSet{2, 3}) => [integers->endsWith(OrderedSet{2, 3})/]
+ @Test integers -> endsWith(OrderedSet{1, 1}) => [integers->endsWith(OrderedSet{1, 1})/]
@Test collections.oclAsSet() => [collections->asSequence()->collect(temp66 | temp66->asSet())/]
[/let]
[/let]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-origin.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-origin.mtl
index a5a5b2f..385144d 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-origin.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-origin.mtl
@@ -393,9 +393,15 @@
[comment]A4-UNSUPPORTED selectByType[/comment]
[comment]A4-UNSUPPORTED selectByKind[/comment]
[comment]A4-UNSUPPORTED addAll[/comment]
-[comment]A4-UNSUPPORTED startsWith[/comment]
+@Test integers -> startsWith(OrderedSet{1, 2}) => [integers -> startsWith(OrderedSet{1, 2})/]
+@Test integers -> startsWith(OrderedSet{1, 1}) => [integers -> startsWith(OrderedSet{1, 1})/]
+@Test integers -> startsWith(OrderedSet{1, 2}) => [integers -> startsWith(OrderedSet{1, 2})/]
+@Test integers -> startsWith(OrderedSet{1, 1}) => [integers -> startsWith(OrderedSet{1, 1})/]
[comment]A4-UNSUPPORTED indexOfSlice[/comment]
-[comment]A4-UNSUPPORTED endsWith[/comment]
+@Test integers -> endsWith(OrderedSet{2, 3}) => [integers -> endsWith(OrderedSet{2, 3})/]
+@Test integers -> endsWith(OrderedSet{1, 1}) => [integers -> endsWith(OrderedSet{1, 1})/]
+@Test integers -> endsWith(OrderedSet{2, 3}) => [integers -> endsWith(OrderedSet{2, 3})/]
+@Test integers -> endsWith(OrderedSet{1, 1}) => [integers -> endsWith(OrderedSet{1, 1})/]
[comment]A4-UNSUPPORTED dropRight[/comment]
[comment]A4-UNSUPPORTED drop[/comment]
[comment]A4-UNSUPPORTED lastIndexOf[/comment]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.emtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.emtl
index 8d120d9..f2dcb04 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.emtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.emtl
@@ -5129,6 +5129,160 @@
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/subOrderedSet"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="@Test integers -> startsWith(OrderedSet{1, 2}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OrderedSet(T)_Class/startsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/OrderedSet(Integer)" referredVariable="/0/testOrderedSet/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="2">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> startsWith(OrderedSet{1, 1}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OrderedSet(T)_Class/startsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/OrderedSet(Integer)" referredVariable="/0/testOrderedSet/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> startsWith(OrderedSet{1, 2}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OrderedSet(T)_Class/startsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/OrderedSet(Integer)" referredVariable="/0/testOrderedSet/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="2">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> startsWith(OrderedSet{1, 1}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OrderedSet(T)_Class/startsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/OrderedSet(Integer)" referredVariable="/0/testOrderedSet/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="@Test integers -> endsWith(OrderedSet{2, 3}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OrderedSet(T)_Class/endsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/OrderedSet(Integer)" referredVariable="/0/testOrderedSet/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="2">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="3">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> endsWith(OrderedSet{1, 1}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OrderedSet(T)_Class/endsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/OrderedSet(Integer)" referredVariable="/0/testOrderedSet/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> endsWith(OrderedSet{2, 3}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OrderedSet(T)_Class/endsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/OrderedSet(Integer)" referredVariable="/0/testOrderedSet/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="2">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="3">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> endsWith(OrderedSet{1, 1}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OrderedSet(T)_Class/endsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/OrderedSet(Integer)" referredVariable="/0/testOrderedSet/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="@Test collections.oclAsSet() => "/>
<body xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/7/Sequence(String)">
<source xsi:type="ocl.ecore:VariableExp" name="collections" eType="/7/OrderedSet(OrderedSet(String))" referredVariable="/0/testOrderedSet/%/%/%/%/%/%/%/collections"/>
@@ -5370,6 +5524,20 @@
<eAnnotations source="MTL non-standard"/>
<eType xsi:type="ocl.ecore:OrderedSetType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>
</eOperations>
+ <eOperations name="startsWith">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <eParameters name="subCollection">
+ <eType xsi:type="ocl.ecore:OrderedSetType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>
+ </eParameters>
+ </eOperations>
+ <eOperations name="endsWith">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <eParameters name="subCollection">
+ <eType xsi:type="ocl.ecore:OrderedSetType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ecore_EPackage_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -6492,47 +6660,71 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</ocl.ecore:Variable>
<ecore:EAnnotation source="positions">
<eAnnotations source="positions.0" references="/0/testOrderedSet">
<details key="start" value="72"/>
- <details key="end" value="28693"/>
+ <details key="end" value="29341"/>
<details key="line" value="3"/>
</eAnnotations>
<eAnnotations source="positions.1" references="/0/testOrderedSet/%">
<details key="start" value="136"/>
- <details key="end" value="28681"/>
+ <details key="end" value="29329"/>
<details key="line" value="5"/>
</eAnnotations>
<eAnnotations source="positions.2" references="/0/testOrderedSet/%/%">
<details key="start" value="251"/>
- <details key="end" value="28673"/>
+ <details key="end" value="29321"/>
<details key="line" value="7"/>
</eAnnotations>
<eAnnotations source="positions.3" references="/0/testOrderedSet/%/%/%">
<details key="start" value="312"/>
- <details key="end" value="28667"/>
+ <details key="end" value="29315"/>
<details key="line" value="8"/>
</eAnnotations>
<eAnnotations source="positions.4" references="/0/testOrderedSet/%/%/%/%">
<details key="start" value="369"/>
- <details key="end" value="28661"/>
+ <details key="end" value="29309"/>
<details key="line" value="9"/>
</eAnnotations>
<eAnnotations source="positions.5" references="/0/testOrderedSet/%/%/%/%/%">
<details key="start" value="426"/>
- <details key="end" value="28655"/>
+ <details key="end" value="29303"/>
<details key="line" value="10"/>
</eAnnotations>
<eAnnotations source="positions.6" references="/0/testOrderedSet/%/%/%/%/%/%">
<details key="start" value="495"/>
- <details key="end" value="28649"/>
+ <details key="end" value="29297"/>
<details key="line" value="11"/>
</eAnnotations>
<eAnnotations source="positions.7" references="/0/testOrderedSet/%/%/%/%/%/%/%">
<details key="start" value="564"/>
- <details key="end" value="28643"/>
+ <details key="end" value="29291"/>
<details key="line" value="12"/>
</eAnnotations>
<eAnnotations source="positions.8" references="/0/testOrderedSet/%/%/%/%/%/%/%/%">
@@ -16171,206 +16363,456 @@
<details key="line" value="386"/>
</eAnnotations>
<eAnnotations source="positions.1935" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.522">
- <details key="start" value="28287"/>
- <details key="end" value="28319"/>
+ <details key="start" value="27972"/>
+ <details key="end" value="28022"/>
+ <details key="line" value="396"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1936" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523">
+ <details key="start" value="28023"/>
+ <details key="end" value="28063"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1937" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/integers">
+ <details key="start" value="28023"/>
+ <details key="end" value="28031"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1938" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/%">
+ <details key="start" value="28046"/>
+ <details key="end" value="28062"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1939" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/%/%/%">
+ <details key="start" value="28057"/>
+ <details key="end" value="28058"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1940" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/%/%.1/%">
+ <details key="start" value="28060"/>
+ <details key="end" value="28061"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1941" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.524">
+ <details key="start" value="28065"/>
+ <details key="end" value="28116"/>
+ <details key="line" value="397"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1942" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525">
+ <details key="start" value="28117"/>
+ <details key="end" value="28157"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1943" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/integers">
+ <details key="start" value="28117"/>
+ <details key="end" value="28125"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1944" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/%">
+ <details key="start" value="28140"/>
+ <details key="end" value="28156"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1945" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/%/%/%">
+ <details key="start" value="28151"/>
+ <details key="end" value="28152"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1946" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/%/%.1/%">
+ <details key="start" value="28154"/>
+ <details key="end" value="28155"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1947" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.526">
+ <details key="start" value="28159"/>
+ <details key="end" value="28210"/>
+ <details key="line" value="398"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1948" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527">
+ <details key="start" value="28211"/>
+ <details key="end" value="28251"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1949" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527/integers">
+ <details key="start" value="28211"/>
+ <details key="end" value="28219"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1950" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527/%">
+ <details key="start" value="28234"/>
+ <details key="end" value="28250"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1951" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527/%/%/%">
+ <details key="start" value="28245"/>
+ <details key="end" value="28246"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1952" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527/%/%.1/%">
+ <details key="start" value="28248"/>
+ <details key="end" value="28249"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1953" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.528">
+ <details key="start" value="28253"/>
+ <details key="end" value="28304"/>
+ <details key="line" value="399"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1954" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529">
+ <details key="start" value="28305"/>
+ <details key="end" value="28345"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1955" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529/integers">
+ <details key="start" value="28305"/>
+ <details key="end" value="28313"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1956" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529/%">
+ <details key="start" value="28328"/>
+ <details key="end" value="28344"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1957" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529/%/%/%">
+ <details key="start" value="28339"/>
+ <details key="end" value="28340"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1958" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529/%/%.1/%">
+ <details key="start" value="28342"/>
+ <details key="end" value="28343"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1959" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.530">
+ <details key="start" value="28347"/>
+ <details key="end" value="28348"/>
+ <details key="line" value="400"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1960" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.531">
+ <details key="start" value="28395"/>
+ <details key="end" value="28443"/>
+ <details key="line" value="401"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1961" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532">
+ <details key="start" value="28444"/>
+ <details key="end" value="28482"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1962" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532/integers">
+ <details key="start" value="28444"/>
+ <details key="end" value="28452"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1963" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532/%">
+ <details key="start" value="28465"/>
+ <details key="end" value="28481"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1964" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532/%/%/%">
+ <details key="start" value="28476"/>
+ <details key="end" value="28477"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1965" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532/%/%.1/%">
+ <details key="start" value="28479"/>
+ <details key="end" value="28480"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1966" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.533">
+ <details key="start" value="28484"/>
+ <details key="end" value="28533"/>
+ <details key="line" value="402"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1967" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534">
+ <details key="start" value="28534"/>
+ <details key="end" value="28572"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1968" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534/integers">
+ <details key="start" value="28534"/>
+ <details key="end" value="28542"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1969" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534/%">
+ <details key="start" value="28555"/>
+ <details key="end" value="28571"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1970" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534/%/%/%">
+ <details key="start" value="28566"/>
+ <details key="end" value="28567"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1971" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534/%/%.1/%">
+ <details key="start" value="28569"/>
+ <details key="end" value="28570"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1972" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.535">
+ <details key="start" value="28574"/>
+ <details key="end" value="28623"/>
<details key="line" value="403"/>
</eAnnotations>
- <eAnnotations source="positions.1936" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42">
- <details key="start" value="28320"/>
- <details key="end" value="28342"/>
+ <eAnnotations source="positions.1973" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536">
+ <details key="start" value="28624"/>
+ <details key="end" value="28662"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1937" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/collections">
- <details key="start" value="28320"/>
- <details key="end" value="28331"/>
+ <eAnnotations source="positions.1974" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536/integers">
+ <details key="start" value="28624"/>
+ <details key="end" value="28632"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1938" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/%">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.1975" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536/%">
+ <details key="start" value="28645"/>
+ <details key="end" value="28661"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1939" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/%/temp1">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.1976" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536/%/%/%">
+ <details key="start" value="28656"/>
+ <details key="end" value="28657"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1940" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/temp66">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.1977" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536/%/%.1/%">
+ <details key="start" value="28659"/>
+ <details key="end" value="28660"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1941" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523">
- <details key="start" value="28344"/>
- <details key="end" value="28345"/>
+ <eAnnotations source="positions.1978" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.537">
+ <details key="start" value="28664"/>
+ <details key="end" value="28713"/>
<details key="line" value="404"/>
</eAnnotations>
- <eAnnotations source="positions.1942" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections">
+ <eAnnotations source="positions.1979" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538">
+ <details key="start" value="28714"/>
+ <details key="end" value="28752"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1980" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538/integers">
+ <details key="start" value="28714"/>
+ <details key="end" value="28722"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1981" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538/%">
+ <details key="start" value="28735"/>
+ <details key="end" value="28751"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1982" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538/%/%/%">
+ <details key="start" value="28746"/>
+ <details key="end" value="28747"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1983" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538/%/%.1/%">
+ <details key="start" value="28749"/>
+ <details key="end" value="28750"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1984" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.539">
+ <details key="start" value="28754"/>
+ <details key="end" value="28755"/>
+ <details key="line" value="405"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1985" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.540">
+ <details key="start" value="28935"/>
+ <details key="end" value="28967"/>
+ <details key="line" value="409"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1986" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42">
+ <details key="start" value="28968"/>
+ <details key="end" value="28990"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1987" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/collections">
+ <details key="start" value="28968"/>
+ <details key="end" value="28979"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1988" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/%">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1989" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/%/temp1">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1990" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/temp66">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1991" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.541">
+ <details key="start" value="28992"/>
+ <details key="end" value="28993"/>
+ <details key="line" value="410"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1992" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections">
<details key="start" value="569"/>
<details key="end" value="667"/>
<details key="line" value="12"/>
</eAnnotations>
- <eAnnotations source="positions.1943" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%">
+ <eAnnotations source="positions.1993" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%">
<details key="start" value="617"/>
<details key="end" value="668"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1944" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%/strings">
+ <eAnnotations source="positions.1994" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%/strings">
<details key="start" value="628"/>
<details key="end" value="635"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1945" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%">
+ <eAnnotations source="positions.1995" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%">
<details key="start" value="636"/>
<details key="end" value="659"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1946" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%/%">
+ <eAnnotations source="positions.1996" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%/%">
<details key="start" value="647"/>
<details key="end" value="650"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1947" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%.1/%">
+ <eAnnotations source="positions.1997" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%.1/%">
<details key="start" value="651"/>
<details key="end" value="654"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1948" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%.2/%">
+ <eAnnotations source="positions.1998" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%.2/%">
<details key="start" value="655"/>
<details key="end" value="658"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1949" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.2/strings">
+ <eAnnotations source="positions.1999" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.2/strings">
<details key="start" value="660"/>
<details key="end" value="667"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1950" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses">
+ <eAnnotations source="positions.2000" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses">
<details key="start" value="500"/>
<details key="end" value="562"/>
<details key="line" value="11"/>
</eAnnotations>
- <eAnnotations source="positions.1951" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%">
+ <eAnnotations source="positions.2001" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%">
<details key="start" value="533"/>
<details key="end" value="563"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1952" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%/%">
+ <eAnnotations source="positions.2002" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%/%">
<details key="start" value="533"/>
<details key="end" value="547"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1953" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%/%/p">
+ <eAnnotations source="positions.2003" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%/%/p">
<details key="start" value="533"/>
<details key="end" value="534"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1954" references="/0/testOrderedSet/%/%/%/%/%/booleans">
+ <eAnnotations source="positions.2004" references="/0/testOrderedSet/%/%/%/%/%/booleans">
<details key="start" value="431"/>
<details key="end" value="493"/>
<details key="line" value="10"/>
</eAnnotations>
- <eAnnotations source="positions.1955" references="/0/testOrderedSet/%/%/%/%/%/booleans/%">
+ <eAnnotations source="positions.2005" references="/0/testOrderedSet/%/%/%/%/%/booleans/%">
<details key="start" value="465"/>
<details key="end" value="494"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1956" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%/%">
+ <eAnnotations source="positions.2006" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%/%">
<details key="start" value="476"/>
<details key="end" value="480"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1957" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%.1/%">
+ <eAnnotations source="positions.2007" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%.1/%">
<details key="start" value="482"/>
<details key="end" value="487"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1958" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%.2/%">
+ <eAnnotations source="positions.2008" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%.2/%">
<details key="start" value="489"/>
<details key="end" value="493"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1959" references="/0/testOrderedSet/%/%/%/%/reals">
+ <eAnnotations source="positions.2009" references="/0/testOrderedSet/%/%/%/%/reals">
<details key="start" value="374"/>
<details key="end" value="424"/>
<details key="line" value="9"/>
</eAnnotations>
- <eAnnotations source="positions.1960" references="/0/testOrderedSet/%/%/%/%/reals/%">
+ <eAnnotations source="positions.2010" references="/0/testOrderedSet/%/%/%/%/reals/%">
<details key="start" value="402"/>
<details key="end" value="425"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1961" references="/0/testOrderedSet/%/%/%/%/reals/%/%/%">
+ <eAnnotations source="positions.2011" references="/0/testOrderedSet/%/%/%/%/reals/%/%/%">
<details key="start" value="413"/>
<details key="end" value="416"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1962" references="/0/testOrderedSet/%/%/%/%/reals/%/%.1/%">
+ <eAnnotations source="positions.2012" references="/0/testOrderedSet/%/%/%/%/reals/%/%.1/%">
<details key="start" value="417"/>
<details key="end" value="420"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1963" references="/0/testOrderedSet/%/%/%/%/reals/%/%.2/%">
+ <eAnnotations source="positions.2013" references="/0/testOrderedSet/%/%/%/%/reals/%/%.2/%">
<details key="start" value="421"/>
<details key="end" value="424"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1964" references="/0/testOrderedSet/%/%/%/integers">
+ <eAnnotations source="positions.2014" references="/0/testOrderedSet/%/%/%/integers">
<details key="start" value="317"/>
<details key="end" value="367"/>
<details key="line" value="8"/>
</eAnnotations>
- <eAnnotations source="positions.1965" references="/0/testOrderedSet/%/%/%/integers/%">
+ <eAnnotations source="positions.2015" references="/0/testOrderedSet/%/%/%/integers/%">
<details key="start" value="351"/>
<details key="end" value="368"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1966" references="/0/testOrderedSet/%/%/%/integers/%/%/%">
+ <eAnnotations source="positions.2016" references="/0/testOrderedSet/%/%/%/integers/%/%/%">
<details key="start" value="362"/>
<details key="end" value="363"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1967" references="/0/testOrderedSet/%/%/%/integers/%/%.1/%">
+ <eAnnotations source="positions.2017" references="/0/testOrderedSet/%/%/%/integers/%/%.1/%">
<details key="start" value="364"/>
<details key="end" value="365"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1968" references="/0/testOrderedSet/%/%/%/integers/%/%.2/%">
+ <eAnnotations source="positions.2018" references="/0/testOrderedSet/%/%/%/integers/%/%.2/%">
<details key="start" value="366"/>
<details key="end" value="367"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1969" references="/0/testOrderedSet/%/%/strings">
+ <eAnnotations source="positions.2019" references="/0/testOrderedSet/%/%/strings">
<details key="start" value="256"/>
<details key="end" value="310"/>
<details key="line" value="7"/>
</eAnnotations>
- <eAnnotations source="positions.1970" references="/0/testOrderedSet/%/%/strings/%">
+ <eAnnotations source="positions.2020" references="/0/testOrderedSet/%/%/strings/%">
<details key="start" value="288"/>
<details key="end" value="311"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1971" references="/0/testOrderedSet/%/%/strings/%/%/%">
+ <eAnnotations source="positions.2021" references="/0/testOrderedSet/%/%/strings/%/%/%">
<details key="start" value="299"/>
<details key="end" value="302"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1972" references="/0/testOrderedSet/%/%/strings/%/%.1/%">
+ <eAnnotations source="positions.2022" references="/0/testOrderedSet/%/%/strings/%/%.1/%">
<details key="start" value="303"/>
<details key="end" value="306"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1973" references="/0/testOrderedSet/%/%/strings/%/%.2/%">
+ <eAnnotations source="positions.2023" references="/0/testOrderedSet/%/%/strings/%/%.2/%">
<details key="start" value="307"/>
<details key="end" value="310"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1974" references="/0/testOrderedSet/%/%.1">
+ <eAnnotations source="positions.2024" references="/0/testOrderedSet/%/%.1">
<details key="start" value="143"/>
<details key="end" value="159"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1975" references="/0/testOrderedSet/p">
+ <eAnnotations source="positions.2025" references="/0/testOrderedSet/p">
<details key="start" value="104"/>
<details key="end" value="116"/>
<details key="line" value="3"/>
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.mtl
index 6881aea..a2e4fa6 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.mtl
@@ -364,6 +364,14 @@
@Test booleans -> subOrderedSet(1,2) => [booleans->subOrderedSet(1, 2)/]
@Test eClasses -> subOrderedSet(1,2) -> collect(name) => [eClasses->subOrderedSet(1, 2)->asSequence()->collect(temp65 | temp65.name)/]
@Test collections -> subOrderedSet(1,2) => [collections->subOrderedSet(1, 2)/]
+ @Test integers -> startsWith(OrderedSet{1, 2}) => [integers->startsWith(OrderedSet{1, 2})/]
+ @Test integers -> startsWith(OrderedSet{1, 1}) => [integers->startsWith(OrderedSet{1, 1})/]
+ @Test integers -> startsWith(OrderedSet{1, 2}) => [integers->startsWith(OrderedSet{1, 2})/]
+ @Test integers -> startsWith(OrderedSet{1, 1}) => [integers->startsWith(OrderedSet{1, 1})/]
+ @Test integers -> endsWith(OrderedSet{2, 3}) => [integers->endsWith(OrderedSet{2, 3})/]
+ @Test integers -> endsWith(OrderedSet{1, 1}) => [integers->endsWith(OrderedSet{1, 1})/]
+ @Test integers -> endsWith(OrderedSet{2, 3}) => [integers->endsWith(OrderedSet{2, 3})/]
+ @Test integers -> endsWith(OrderedSet{1, 1}) => [integers->endsWith(OrderedSet{1, 1})/]
@Test collections.oclAsSet() => [collections->asSequence()->collect(temp66 | temp66->asSet())/]
[/let]
[/let]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/generated/testSequence-expected.txt b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/generated/testSequence-expected.txt
index 9650ed9..a7d66c8 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/generated/testSequence-expected.txt
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/generated/testSequence-expected.txt
@@ -355,3 +355,11 @@
@Test booleans -> subSequence(1,2) => truefalse
@Test eClasses -> subSequence(1,2) -> collect(name) => ClasseAClasseB
@Test collections -> subSequence(1,2) => abcefg
+@Test integers -> startsWith(OrderedSet{1, 2}) => true
+@Test integers -> startsWith(OrderedSet{1, 1}) => true
+@Test integers -> startsWith(OrderedSet{1, 2}) => true
+@Test integers -> startsWith(OrderedSet{1, 1}) => true
+@Test integers -> endsWith(OrderedSet{2, 3}) => true
+@Test integers -> endsWith(OrderedSet{1, 1}) => false
+@Test integers -> endsWith(OrderedSet{2, 3}) => true
+@Test integers -> endsWith(OrderedSet{1, 1}) => false
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected.mtl
index 2d0c2aa..2927dca 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected.mtl
@@ -366,6 +366,14 @@
@Test booleans -> subSequence(1,2) => [booleans->subSequence(1, 2)/]
@Test eClasses -> subSequence(1,2) -> collect(name) => [eClasses->subSequence(1, 2)->collect(temp59 | temp59.name)/]
@Test collections -> subSequence(1,2) => [collections->subSequence(1, 2)/]
+ @Test integers -> startsWith(OrderedSet{1, 2}) => [integers->startsWith(OrderedSet{1, 2})/]
+ @Test integers -> startsWith(OrderedSet{1, 1}) => [integers->startsWith(OrderedSet{1, 1})/]
+ @Test integers -> startsWith(OrderedSet{1, 2}) => [integers->startsWith(OrderedSet{1, 2})/]
+ @Test integers -> startsWith(OrderedSet{1, 1}) => [integers->startsWith(OrderedSet{1, 1})/]
+ @Test integers -> endsWith(OrderedSet{2, 3}) => [integers->endsWith(OrderedSet{2, 3})/]
+ @Test integers -> endsWith(OrderedSet{1, 1}) => [integers->endsWith(OrderedSet{1, 1})/]
+ @Test integers -> endsWith(OrderedSet{2, 3}) => [integers->endsWith(OrderedSet{2, 3})/]
+ @Test integers -> endsWith(OrderedSet{1, 1}) => [integers->endsWith(OrderedSet{1, 1})/]
[/let]
[/let]
[/let]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-origin.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-origin.mtl
index 6a48f21..3e307950 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-origin.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-origin.mtl
@@ -392,9 +392,15 @@
[comment]A4-UNSUPPORTED selectByType[/comment]
[comment]A4-UNSUPPORTED selectByKind[/comment]
[comment]A4-UNSUPPORTED addAll[/comment]
-[comment]A4-UNSUPPORTED startsWith[/comment]
+@Test integers -> startsWith(OrderedSet{1, 2}) => [integers -> startsWith(OrderedSet{1, 2})/]
+@Test integers -> startsWith(OrderedSet{1, 1}) => [integers -> startsWith(OrderedSet{1, 1})/]
+@Test integers -> startsWith(OrderedSet{1, 2}) => [integers -> startsWith(OrderedSet{1, 2})/]
+@Test integers -> startsWith(OrderedSet{1, 1}) => [integers -> startsWith(OrderedSet{1, 1})/]
[comment]A4-UNSUPPORTED indexOfSlice[/comment]
-[comment]A4-UNSUPPORTED endsWith[/comment]
+@Test integers -> endsWith(OrderedSet{2, 3}) => [integers -> endsWith(OrderedSet{2, 3})/]
+@Test integers -> endsWith(OrderedSet{1, 1}) => [integers -> endsWith(OrderedSet{1, 1})/]
+@Test integers -> endsWith(OrderedSet{2, 3}) => [integers -> endsWith(OrderedSet{2, 3})/]
+@Test integers -> endsWith(OrderedSet{1, 1}) => [integers -> endsWith(OrderedSet{1, 1})/]
[comment]A4-UNSUPPORTED dropRight[/comment]
[comment]A4-UNSUPPORTED drop[/comment]
[comment]A4-UNSUPPORTED lastIndexOf[/comment]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.emtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.emtl
index b0b833c..c8dade8 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.emtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.emtl
@@ -5064,6 +5064,160 @@
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/subSequence"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="@Test integers -> startsWith(OrderedSet{1, 2}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_Sequence(T)_Class/startsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/Sequence(Integer)" referredVariable="/0/testSequence/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="2">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> startsWith(OrderedSet{1, 1}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_Sequence(T)_Class/startsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/Sequence(Integer)" referredVariable="/0/testSequence/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> startsWith(OrderedSet{1, 2}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_Sequence(T)_Class/startsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/Sequence(Integer)" referredVariable="/0/testSequence/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="2">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> startsWith(OrderedSet{1, 1}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_Sequence(T)_Class/startsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/Sequence(Integer)" referredVariable="/0/testSequence/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="@Test integers -> endsWith(OrderedSet{2, 3}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_Sequence(T)_Class/endsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/Sequence(Integer)" referredVariable="/0/testSequence/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="2">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="3">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> endsWith(OrderedSet{1, 1}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_Sequence(T)_Class/endsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/Sequence(Integer)" referredVariable="/0/testSequence/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> endsWith(OrderedSet{2, 3}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_Sequence(T)_Class/endsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/Sequence(Integer)" referredVariable="/0/testSequence/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="2">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="3">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
@Test integers -> endsWith(OrderedSet{1, 1}) => "/>
+ <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_Sequence(T)_Class/endsWith">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="integers" eType="/7/Sequence(Integer)" referredVariable="/0/testSequence/%/%/%/integers"/>
+ <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(Integer)" kind="OrderedSet">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </item>
+ </part>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/>
<letVariable name="collections" eType="/7/Sequence(Sequence(String))">
<initExpression xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/Sequence(Sequence(String))" kind="Sequence">
<part xsi:type="ocl.ecore:CollectionItem" eType="/7/Sequence(String)">
@@ -5290,6 +5444,20 @@
<eAnnotations source="MTL non-standard"/>
<eType xsi:type="ocl.ecore:SequenceType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)"/>
</eOperations>
+ <eOperations name="startsWith">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <eParameters name="subCollection">
+ <eType xsi:type="ocl.ecore:OrderedSetType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>
+ </eParameters>
+ </eOperations>
+ <eOperations name="endsWith">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <eParameters name="subCollection">
+ <eType xsi:type="ocl.ecore:OrderedSetType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OrderedSet(T)_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -6387,47 +6555,71 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</ocl.ecore:Variable>
<ecore:EAnnotation source="positions">
<eAnnotations source="positions.0" references="/0/testSequence">
<details key="start" value="70"/>
- <details key="end" value="27764"/>
+ <details key="end" value="28412"/>
<details key="line" value="3"/>
</eAnnotations>
<eAnnotations source="positions.1" references="/0/testSequence/%">
<details key="start" value="132"/>
- <details key="end" value="27752"/>
+ <details key="end" value="28400"/>
<details key="line" value="5"/>
</eAnnotations>
<eAnnotations source="positions.2" references="/0/testSequence/%/%">
<details key="start" value="242"/>
- <details key="end" value="27744"/>
+ <details key="end" value="28392"/>
<details key="line" value="7"/>
</eAnnotations>
<eAnnotations source="positions.3" references="/0/testSequence/%/%/%">
<details key="start" value="299"/>
- <details key="end" value="27738"/>
+ <details key="end" value="28386"/>
<details key="line" value="8"/>
</eAnnotations>
<eAnnotations source="positions.4" references="/0/testSequence/%/%/%/%">
<details key="start" value="352"/>
- <details key="end" value="27732"/>
+ <details key="end" value="28380"/>
<details key="line" value="9"/>
</eAnnotations>
<eAnnotations source="positions.5" references="/0/testSequence/%/%/%/%/%">
<details key="start" value="405"/>
- <details key="end" value="27726"/>
+ <details key="end" value="28374"/>
<details key="line" value="10"/>
</eAnnotations>
<eAnnotations source="positions.6" references="/0/testSequence/%/%/%/%/%/%">
<details key="start" value="470"/>
- <details key="end" value="27720"/>
+ <details key="end" value="28368"/>
<details key="line" value="11"/>
</eAnnotations>
<eAnnotations source="positions.7" references="/0/testSequence/%/%/%/%/%/%/%">
<details key="start" value="535"/>
- <details key="end" value="27714"/>
+ <details key="end" value="28362"/>
<details key="line" value="12"/>
</eAnnotations>
<eAnnotations source="positions.8" references="/0/testSequence/%/%/%/%/%/%/%/%">
@@ -15950,172 +16142,422 @@
<details key="end" value="26657"/>
<details key="line" value="386"/>
</eAnnotations>
- <eAnnotations source="positions.1912" references="/0/testSequence/%/%/%/%/%/%/%/collections">
+ <eAnnotations source="positions.1912" references="/0/testSequence/%/%/%/%/%/%/%/%.527">
+ <details key="start" value="27048"/>
+ <details key="end" value="27098"/>
+ <details key="line" value="395"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1913" references="/0/testSequence/%/%/%/%/%/%/%/%.528">
+ <details key="start" value="27099"/>
+ <details key="end" value="27139"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1914" references="/0/testSequence/%/%/%/%/%/%/%/%.528/integers">
+ <details key="start" value="27099"/>
+ <details key="end" value="27107"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1915" references="/0/testSequence/%/%/%/%/%/%/%/%.528/%">
+ <details key="start" value="27122"/>
+ <details key="end" value="27138"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1916" references="/0/testSequence/%/%/%/%/%/%/%/%.528/%/%/%">
+ <details key="start" value="27133"/>
+ <details key="end" value="27134"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1917" references="/0/testSequence/%/%/%/%/%/%/%/%.528/%/%.1/%">
+ <details key="start" value="27136"/>
+ <details key="end" value="27137"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1918" references="/0/testSequence/%/%/%/%/%/%/%/%.529">
+ <details key="start" value="27141"/>
+ <details key="end" value="27192"/>
+ <details key="line" value="396"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1919" references="/0/testSequence/%/%/%/%/%/%/%/%.530">
+ <details key="start" value="27193"/>
+ <details key="end" value="27233"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1920" references="/0/testSequence/%/%/%/%/%/%/%/%.530/integers">
+ <details key="start" value="27193"/>
+ <details key="end" value="27201"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1921" references="/0/testSequence/%/%/%/%/%/%/%/%.530/%">
+ <details key="start" value="27216"/>
+ <details key="end" value="27232"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1922" references="/0/testSequence/%/%/%/%/%/%/%/%.530/%/%/%">
+ <details key="start" value="27227"/>
+ <details key="end" value="27228"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1923" references="/0/testSequence/%/%/%/%/%/%/%/%.530/%/%.1/%">
+ <details key="start" value="27230"/>
+ <details key="end" value="27231"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1924" references="/0/testSequence/%/%/%/%/%/%/%/%.531">
+ <details key="start" value="27235"/>
+ <details key="end" value="27286"/>
+ <details key="line" value="397"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1925" references="/0/testSequence/%/%/%/%/%/%/%/%.532">
+ <details key="start" value="27287"/>
+ <details key="end" value="27327"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1926" references="/0/testSequence/%/%/%/%/%/%/%/%.532/integers">
+ <details key="start" value="27287"/>
+ <details key="end" value="27295"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1927" references="/0/testSequence/%/%/%/%/%/%/%/%.532/%">
+ <details key="start" value="27310"/>
+ <details key="end" value="27326"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1928" references="/0/testSequence/%/%/%/%/%/%/%/%.532/%/%/%">
+ <details key="start" value="27321"/>
+ <details key="end" value="27322"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1929" references="/0/testSequence/%/%/%/%/%/%/%/%.532/%/%.1/%">
+ <details key="start" value="27324"/>
+ <details key="end" value="27325"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1930" references="/0/testSequence/%/%/%/%/%/%/%/%.533">
+ <details key="start" value="27329"/>
+ <details key="end" value="27380"/>
+ <details key="line" value="398"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1931" references="/0/testSequence/%/%/%/%/%/%/%/%.534">
+ <details key="start" value="27381"/>
+ <details key="end" value="27421"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1932" references="/0/testSequence/%/%/%/%/%/%/%/%.534/integers">
+ <details key="start" value="27381"/>
+ <details key="end" value="27389"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1933" references="/0/testSequence/%/%/%/%/%/%/%/%.534/%">
+ <details key="start" value="27404"/>
+ <details key="end" value="27420"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1934" references="/0/testSequence/%/%/%/%/%/%/%/%.534/%/%/%">
+ <details key="start" value="27415"/>
+ <details key="end" value="27416"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1935" references="/0/testSequence/%/%/%/%/%/%/%/%.534/%/%.1/%">
+ <details key="start" value="27418"/>
+ <details key="end" value="27419"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1936" references="/0/testSequence/%/%/%/%/%/%/%/%.535">
+ <details key="start" value="27423"/>
+ <details key="end" value="27424"/>
+ <details key="line" value="399"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1937" references="/0/testSequence/%/%/%/%/%/%/%/%.536">
+ <details key="start" value="27471"/>
+ <details key="end" value="27519"/>
+ <details key="line" value="400"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1938" references="/0/testSequence/%/%/%/%/%/%/%/%.537">
+ <details key="start" value="27520"/>
+ <details key="end" value="27558"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1939" references="/0/testSequence/%/%/%/%/%/%/%/%.537/integers">
+ <details key="start" value="27520"/>
+ <details key="end" value="27528"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1940" references="/0/testSequence/%/%/%/%/%/%/%/%.537/%">
+ <details key="start" value="27541"/>
+ <details key="end" value="27557"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1941" references="/0/testSequence/%/%/%/%/%/%/%/%.537/%/%/%">
+ <details key="start" value="27552"/>
+ <details key="end" value="27553"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1942" references="/0/testSequence/%/%/%/%/%/%/%/%.537/%/%.1/%">
+ <details key="start" value="27555"/>
+ <details key="end" value="27556"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1943" references="/0/testSequence/%/%/%/%/%/%/%/%.538">
+ <details key="start" value="27560"/>
+ <details key="end" value="27609"/>
+ <details key="line" value="401"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1944" references="/0/testSequence/%/%/%/%/%/%/%/%.539">
+ <details key="start" value="27610"/>
+ <details key="end" value="27648"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1945" references="/0/testSequence/%/%/%/%/%/%/%/%.539/integers">
+ <details key="start" value="27610"/>
+ <details key="end" value="27618"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1946" references="/0/testSequence/%/%/%/%/%/%/%/%.539/%">
+ <details key="start" value="27631"/>
+ <details key="end" value="27647"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1947" references="/0/testSequence/%/%/%/%/%/%/%/%.539/%/%/%">
+ <details key="start" value="27642"/>
+ <details key="end" value="27643"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1948" references="/0/testSequence/%/%/%/%/%/%/%/%.539/%/%.1/%">
+ <details key="start" value="27645"/>
+ <details key="end" value="27646"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1949" references="/0/testSequence/%/%/%/%/%/%/%/%.540">
+ <details key="start" value="27650"/>
+ <details key="end" value="27699"/>
+ <details key="line" value="402"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1950" references="/0/testSequence/%/%/%/%/%/%/%/%.541">
+ <details key="start" value="27700"/>
+ <details key="end" value="27738"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1951" references="/0/testSequence/%/%/%/%/%/%/%/%.541/integers">
+ <details key="start" value="27700"/>
+ <details key="end" value="27708"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1952" references="/0/testSequence/%/%/%/%/%/%/%/%.541/%">
+ <details key="start" value="27721"/>
+ <details key="end" value="27737"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1953" references="/0/testSequence/%/%/%/%/%/%/%/%.541/%/%/%">
+ <details key="start" value="27732"/>
+ <details key="end" value="27733"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1954" references="/0/testSequence/%/%/%/%/%/%/%/%.541/%/%.1/%">
+ <details key="start" value="27735"/>
+ <details key="end" value="27736"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1955" references="/0/testSequence/%/%/%/%/%/%/%/%.542">
+ <details key="start" value="27740"/>
+ <details key="end" value="27789"/>
+ <details key="line" value="403"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1956" references="/0/testSequence/%/%/%/%/%/%/%/%.543">
+ <details key="start" value="27790"/>
+ <details key="end" value="27828"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1957" references="/0/testSequence/%/%/%/%/%/%/%/%.543/integers">
+ <details key="start" value="27790"/>
+ <details key="end" value="27798"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1958" references="/0/testSequence/%/%/%/%/%/%/%/%.543/%">
+ <details key="start" value="27811"/>
+ <details key="end" value="27827"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1959" references="/0/testSequence/%/%/%/%/%/%/%/%.543/%/%/%">
+ <details key="start" value="27822"/>
+ <details key="end" value="27823"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1960" references="/0/testSequence/%/%/%/%/%/%/%/%.543/%/%.1/%">
+ <details key="start" value="27825"/>
+ <details key="end" value="27826"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1961" references="/0/testSequence/%/%/%/%/%/%/%/%.544">
+ <details key="start" value="27830"/>
+ <details key="end" value="27831"/>
+ <details key="line" value="404"/>
+ </eAnnotations>
+ <eAnnotations source="positions.1962" references="/0/testSequence/%/%/%/%/%/%/%/collections">
<details key="start" value="540"/>
<details key="end" value="630"/>
<details key="line" value="12"/>
</eAnnotations>
- <eAnnotations source="positions.1913" references="/0/testSequence/%/%/%/%/%/%/%/collections/%">
+ <eAnnotations source="positions.1963" references="/0/testSequence/%/%/%/%/%/%/%/collections/%">
<details key="start" value="584"/>
<details key="end" value="631"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1914" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%/strings">
+ <eAnnotations source="positions.1964" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%/strings">
<details key="start" value="593"/>
<details key="end" value="600"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1915" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%">
+ <eAnnotations source="positions.1965" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%">
<details key="start" value="601"/>
<details key="end" value="622"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1916" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%/%">
+ <eAnnotations source="positions.1966" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%/%">
<details key="start" value="610"/>
<details key="end" value="613"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1917" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%.1/%">
+ <eAnnotations source="positions.1967" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%.1/%">
<details key="start" value="614"/>
<details key="end" value="617"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1918" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%.2/%">
+ <eAnnotations source="positions.1968" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%.2/%">
<details key="start" value="618"/>
<details key="end" value="621"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1919" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.2/strings">
+ <eAnnotations source="positions.1969" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.2/strings">
<details key="start" value="623"/>
<details key="end" value="630"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1920" references="/0/testSequence/%/%/%/%/%/%/eClasses">
+ <eAnnotations source="positions.1970" references="/0/testSequence/%/%/%/%/%/%/eClasses">
<details key="start" value="475"/>
<details key="end" value="533"/>
<details key="line" value="11"/>
</eAnnotations>
- <eAnnotations source="positions.1921" references="/0/testSequence/%/%/%/%/%/%/eClasses/%">
+ <eAnnotations source="positions.1971" references="/0/testSequence/%/%/%/%/%/%/eClasses/%">
<details key="start" value="506"/>
<details key="end" value="534"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1922" references="/0/testSequence/%/%/%/%/%/%/eClasses/%/%">
+ <eAnnotations source="positions.1972" references="/0/testSequence/%/%/%/%/%/%/eClasses/%/%">
<details key="start" value="506"/>
<details key="end" value="520"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1923" references="/0/testSequence/%/%/%/%/%/%/eClasses/%/%/p">
+ <eAnnotations source="positions.1973" references="/0/testSequence/%/%/%/%/%/%/eClasses/%/%/p">
<details key="start" value="506"/>
<details key="end" value="507"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1924" references="/0/testSequence/%/%/%/%/%/booleans">
+ <eAnnotations source="positions.1974" references="/0/testSequence/%/%/%/%/%/booleans">
<details key="start" value="410"/>
<details key="end" value="468"/>
<details key="line" value="10"/>
</eAnnotations>
- <eAnnotations source="positions.1925" references="/0/testSequence/%/%/%/%/%/booleans/%">
+ <eAnnotations source="positions.1975" references="/0/testSequence/%/%/%/%/%/booleans/%">
<details key="start" value="442"/>
<details key="end" value="469"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1926" references="/0/testSequence/%/%/%/%/%/booleans/%/%/%">
+ <eAnnotations source="positions.1976" references="/0/testSequence/%/%/%/%/%/booleans/%/%/%">
<details key="start" value="451"/>
<details key="end" value="455"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1927" references="/0/testSequence/%/%/%/%/%/booleans/%/%.1/%">
+ <eAnnotations source="positions.1977" references="/0/testSequence/%/%/%/%/%/booleans/%/%.1/%">
<details key="start" value="457"/>
<details key="end" value="462"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1928" references="/0/testSequence/%/%/%/%/%/booleans/%/%.2/%">
+ <eAnnotations source="positions.1978" references="/0/testSequence/%/%/%/%/%/booleans/%/%.2/%">
<details key="start" value="464"/>
<details key="end" value="468"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1929" references="/0/testSequence/%/%/%/%/reals">
+ <eAnnotations source="positions.1979" references="/0/testSequence/%/%/%/%/reals">
<details key="start" value="357"/>
<details key="end" value="403"/>
<details key="line" value="9"/>
</eAnnotations>
- <eAnnotations source="positions.1930" references="/0/testSequence/%/%/%/%/reals/%">
+ <eAnnotations source="positions.1980" references="/0/testSequence/%/%/%/%/reals/%">
<details key="start" value="383"/>
<details key="end" value="404"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1931" references="/0/testSequence/%/%/%/%/reals/%/%/%">
+ <eAnnotations source="positions.1981" references="/0/testSequence/%/%/%/%/reals/%/%/%">
<details key="start" value="392"/>
<details key="end" value="395"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1932" references="/0/testSequence/%/%/%/%/reals/%/%.1/%">
+ <eAnnotations source="positions.1982" references="/0/testSequence/%/%/%/%/reals/%/%.1/%">
<details key="start" value="396"/>
<details key="end" value="399"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1933" references="/0/testSequence/%/%/%/%/reals/%/%.2/%">
+ <eAnnotations source="positions.1983" references="/0/testSequence/%/%/%/%/reals/%/%.2/%">
<details key="start" value="400"/>
<details key="end" value="403"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1934" references="/0/testSequence/%/%/%/integers">
+ <eAnnotations source="positions.1984" references="/0/testSequence/%/%/%/integers">
<details key="start" value="304"/>
<details key="end" value="350"/>
<details key="line" value="8"/>
</eAnnotations>
- <eAnnotations source="positions.1935" references="/0/testSequence/%/%/%/integers/%">
+ <eAnnotations source="positions.1985" references="/0/testSequence/%/%/%/integers/%">
<details key="start" value="336"/>
<details key="end" value="351"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1936" references="/0/testSequence/%/%/%/integers/%/%/%">
+ <eAnnotations source="positions.1986" references="/0/testSequence/%/%/%/integers/%/%/%">
<details key="start" value="345"/>
<details key="end" value="346"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1937" references="/0/testSequence/%/%/%/integers/%/%.1/%">
+ <eAnnotations source="positions.1987" references="/0/testSequence/%/%/%/integers/%/%.1/%">
<details key="start" value="347"/>
<details key="end" value="348"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1938" references="/0/testSequence/%/%/%/integers/%/%.2/%">
+ <eAnnotations source="positions.1988" references="/0/testSequence/%/%/%/integers/%/%.2/%">
<details key="start" value="349"/>
<details key="end" value="350"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1939" references="/0/testSequence/%/%/strings">
+ <eAnnotations source="positions.1989" references="/0/testSequence/%/%/strings">
<details key="start" value="247"/>
<details key="end" value="297"/>
<details key="line" value="7"/>
</eAnnotations>
- <eAnnotations source="positions.1940" references="/0/testSequence/%/%/strings/%">
+ <eAnnotations source="positions.1990" references="/0/testSequence/%/%/strings/%">
<details key="start" value="277"/>
<details key="end" value="298"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1941" references="/0/testSequence/%/%/strings/%/%/%">
+ <eAnnotations source="positions.1991" references="/0/testSequence/%/%/strings/%/%/%">
<details key="start" value="286"/>
<details key="end" value="289"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1942" references="/0/testSequence/%/%/strings/%/%.1/%">
+ <eAnnotations source="positions.1992" references="/0/testSequence/%/%/strings/%/%.1/%">
<details key="start" value="290"/>
<details key="end" value="293"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1943" references="/0/testSequence/%/%/strings/%/%.2/%">
+ <eAnnotations source="positions.1993" references="/0/testSequence/%/%/strings/%/%.2/%">
<details key="start" value="294"/>
<details key="end" value="297"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1944" references="/0/testSequence/%/%.1">
+ <eAnnotations source="positions.1994" references="/0/testSequence/%/%.1">
<details key="start" value="139"/>
<details key="end" value="153"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.1945" references="/0/testSequence/p">
+ <eAnnotations source="positions.1995" references="/0/testSequence/p">
<details key="start" value="100"/>
<details key="end" value="112"/>
<details key="line" value="3"/>
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.mtl
index 2d0c2aa..2927dca 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.mtl
@@ -366,6 +366,14 @@
@Test booleans -> subSequence(1,2) => [booleans->subSequence(1, 2)/]
@Test eClasses -> subSequence(1,2) -> collect(name) => [eClasses->subSequence(1, 2)->collect(temp59 | temp59.name)/]
@Test collections -> subSequence(1,2) => [collections->subSequence(1, 2)/]
+ @Test integers -> startsWith(OrderedSet{1, 2}) => [integers->startsWith(OrderedSet{1, 2})/]
+ @Test integers -> startsWith(OrderedSet{1, 1}) => [integers->startsWith(OrderedSet{1, 1})/]
+ @Test integers -> startsWith(OrderedSet{1, 2}) => [integers->startsWith(OrderedSet{1, 2})/]
+ @Test integers -> startsWith(OrderedSet{1, 1}) => [integers->startsWith(OrderedSet{1, 1})/]
+ @Test integers -> endsWith(OrderedSet{2, 3}) => [integers->endsWith(OrderedSet{2, 3})/]
+ @Test integers -> endsWith(OrderedSet{1, 1}) => [integers->endsWith(OrderedSet{1, 1})/]
+ @Test integers -> endsWith(OrderedSet{2, 3}) => [integers->endsWith(OrderedSet{2, 3})/]
+ @Test integers -> endsWith(OrderedSet{1, 1}) => [integers->endsWith(OrderedSet{1, 1})/]
[/let]
[/let]
[/let]