Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 140911 Details for
Bug 246962
[library] Set operations like including(obj) and excluding(obj) should be specialized for OrederedSet
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Proposed patch
scr246962-patch (text/plain), 15.07 KB, created by
Sergey Boyko
on 2009-07-06 18:12:47 EDT
(
hide
)
Description:
Proposed patch
Filename:
MIME Type:
Creator:
Sergey Boyko
Created:
2009-07-06 18:12:47 EDT
Size:
15.07 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ocl.uml >Index: model/oclstdlib.uml >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl.uml/model/oclstdlib.uml,v >retrieving revision 1.7 >diff -u -r1.7 oclstdlib.uml >--- model/oclstdlib.uml 12 Oct 2008 01:12:33 -0000 1.7 >+++ model/oclstdlib.uml 6 Jul 2009 22:10:04 -0000 >@@ -1017,11 +1017,11 @@ > <ownedParameter xmi:id="_avUM36jQEdu4LJng8Rasow" name="set" type="_auE2s6jQEdu4LJng8Rasow"/> > </ownedOperation> > <ownedOperation xmi:id="_avUM4KjQEdu4LJng8Rasow" name="including" isQuery="true"> >- <ownedParameter xmi:id="_avUM4ajQEdu4LJng8Rasow" type="_auE2s6jQEdu4LJng8Rasow" direction="return"/> >+ <ownedParameter xmi:id="_avUM4ajQEdu4LJng8Rasow" type="_avUMsKjQEdu4LJng8Rasow" direction="return"/> > <ownedParameter xmi:id="_avUM4qjQEdu4LJng8Rasow" name="object" type="_awji1ajQEdu4LJng8Rasow"/> > </ownedOperation> > <ownedOperation xmi:id="_avUM46jQEdu4LJng8Rasow" name="excluding" isQuery="true"> >- <ownedParameter xmi:id="_avUM5KjQEdu4LJng8Rasow" type="_auE2s6jQEdu4LJng8Rasow" direction="return"/> >+ <ownedParameter xmi:id="_avUM5KjQEdu4LJng8Rasow" type="_avUMsKjQEdu4LJng8Rasow" direction="return"/> > <ownedParameter xmi:id="_avUM5ajQEdu4LJng8Rasow" name="object" type="_awji1ajQEdu4LJng8Rasow"/> > </ownedOperation> > <ownedOperation xmi:id="_avUM5qjQEdu4LJng8Rasow" name="symmetricDifference" isQuery="true"> >#P org.eclipse.ocl >Index: src/org/eclipse/ocl/util/CollectionUtil.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/util/CollectionUtil.java,v >retrieving revision 1.8 >diff -u -r1.8 CollectionUtil.java >--- src/org/eclipse/ocl/util/CollectionUtil.java 25 Jun 2009 19:23:52 -0000 1.8 >+++ src/org/eclipse/ocl/util/CollectionUtil.java 6 Jul 2009 22:10:12 -0000 >@@ -469,8 +469,8 @@ > */ > public static <E> Collection<E> excluding(Collection<E> self, Object object) { > Collection<E> result = null; >- if (self instanceof Set<?>) { >- result = createNewSet(self); >+ if (self instanceof LinkedHashSet<?>) { >+ result = createNewOrderedSet(self); > } else if (self instanceof Bag<?>) { > result = createNewBag(self); > } else if (self instanceof List<?>) { >@@ -480,7 +480,7 @@ > } > return resultSeq; > } else { >- result = createNewOrderedSet(self); >+ result = createNewSet(self); > } > > // non-sequences (bags remove all occurrences internally) >@@ -530,12 +530,14 @@ > public static <E> Collection<E> including(Collection<E> self, E object) { > Collection<E> result; > >- if (self instanceof Set<?>) { >- result = createNewSet(self); >+ if (self instanceof LinkedHashSet<?>) { >+ result = createNewOrderedSet(self); > } else if (self instanceof Bag<?>) { > result = createNewBag(self); >- } else { >+ } else if (self instanceof List<?>) { > result = createNewSequence(self); >+ } else { >+ result = createNewSet(self); > } > > result.add(object); >Index: src/org/eclipse/ocl/util/OCLStandardLibraryUtil.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/util/OCLStandardLibraryUtil.java,v >retrieving revision 1.13 >diff -u -r1.13 OCLStandardLibraryUtil.java >--- src/org/eclipse/ocl/util/OCLStandardLibraryUtil.java 25 Jun 2009 19:23:52 -0000 1.13 >+++ src/org/eclipse/ocl/util/OCLStandardLibraryUtil.java 6 Jul 2009 22:10:15 -0000 >@@ -959,6 +959,8 @@ > case INDEX_OF : > return stdlib.getInteger(); > >+ case INCLUDING : >+ case EXCLUDING : > case APPEND : > case PREPEND : > argType = args.get(0).getType(); >@@ -1686,6 +1688,10 @@ > stdlib.getT(), "object")); //$NON-NLS-1$ > result.add(createBinaryOperation(uml, stdlib.getOrderedSet(), > PREPEND_NAME, stdlib.getT(), "object"));//$NON-NLS-1$ >+ result.add(createBinaryOperation(uml, stdlib.getOrderedSet(), >+ INCLUDING_NAME, stdlib.getT(), "object"));//$NON-NLS-1$ >+ result.add(createBinaryOperation(uml, stdlib.getOrderedSet(), >+ EXCLUDING_NAME, stdlib.getT(), "object"));//$NON-NLS-1$ > result.add(createTernaryOperation(uml, stdlib.getOrderedSet(), > SUB_ORDERED_SET_NAME, stdlib.getInteger(), "lower", //$NON-NLS-1$ > stdlib.getInteger(), "upper"));//$NON-NLS-1$ >#P org.eclipse.ocl.uml.tests >Index: src/org/eclipse/ocl/uml/tests/CollectionsTest.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/tests/org.eclipse.ocl.uml.tests/src/org/eclipse/ocl/uml/tests/CollectionsTest.java,v >retrieving revision 1.6 >diff -u -r1.6 CollectionsTest.java >--- src/org/eclipse/ocl/uml/tests/CollectionsTest.java 3 May 2007 13:06:08 -0000 1.6 >+++ src/org/eclipse/ocl/uml/tests/CollectionsTest.java 6 Jul 2009 22:10:21 -0000 >@@ -20,6 +20,7 @@ > import java.util.Arrays; > import java.util.Collection; > import java.util.Collections; >+import java.util.LinkedHashSet; > import java.util.List; > import java.util.Set; > >@@ -264,6 +265,15 @@ > .asList(new Object[] {"a", "b", "c", "d", "e"})); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ > > assertEquals(expected, result); >+ >+ // return type is OrderedSet >+ >+ expr = helper >+ .createQuery("OrderedSet{'a', 'b', 'd', 'e'}->including('c')"); //$NON-NLS-1$ >+ >+ Object objResult = ocl.evaluate("", expr); //$NON-NLS-1$ >+ >+ assertTrue(objResult instanceof LinkedHashSet<?>); > } catch (Exception e) { > fail("Failed to parse or evaluate: " + e.getLocalizedMessage()); //$NON-NLS-1$ > } >@@ -317,6 +327,15 @@ > .asList(new Object[] {"a", "b", "d", "e"})); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ > > assertEquals(expected, result); >+ >+ // return type is OrderedSet >+ >+ expr = helper >+ .createQuery("OrderedSet{'a', 'b', 'd', 'e'}->excluding('c')"); //$NON-NLS-1$ >+ >+ Object objResult = ocl.evaluate("", expr); //$NON-NLS-1$ >+ >+ assertTrue(objResult instanceof LinkedHashSet<?>); > } catch (Exception e) { > fail("Failed to parse or evaluate: " + e.getLocalizedMessage()); //$NON-NLS-1$ > } >Index: org.eclipse.ocl.uml.tests.AllTests.launch >=================================================================== >RCS file: org.eclipse.ocl.uml.tests.AllTests.launch >diff -N org.eclipse.ocl.uml.tests.AllTests.launch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ org.eclipse.ocl.uml.tests.AllTests.launch 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,38 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig"> >+<booleanAttribute key="append.args" value="true"/> >+<booleanAttribute key="askclear" value="false"/> >+<booleanAttribute key="automaticAdd" value="true"/> >+<booleanAttribute key="automaticValidate" value="false"/> >+<stringAttribute key="bootstrap" value=""/> >+<stringAttribute key="checked" value="[NONE]"/> >+<booleanAttribute key="clearConfig" value="true"/> >+<booleanAttribute key="clearws" value="true"/> >+<booleanAttribute key="clearwslog" value="false"/> >+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/> >+<booleanAttribute key="default" value="true"/> >+<booleanAttribute key="includeOptional" value="true"/> >+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/> >+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> >+<listEntry value="/org.eclipse.ocl.uml.tests/src/org/eclipse/ocl/uml/tests/AllTests.java"/> >+</listAttribute> >+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> >+<listEntry value="1"/> >+</listAttribute> >+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> >+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> >+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> >+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/> >+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ocl.uml.tests.AllTests"/> >+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/> >+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ocl.uml.tests"/> >+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> >+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms128m -Xmx768m -XX:MaxPermSize=128M"/> >+<stringAttribute key="pde.version" value="3.3"/> >+<stringAttribute key="product" value="org.eclipse.sdk.ide"/> >+<booleanAttribute key="show_selected_only" value="false"/> >+<booleanAttribute key="tracing" value="false"/> >+<booleanAttribute key="useDefaultConfig" value="true"/> >+<booleanAttribute key="useDefaultConfigArea" value="false"/> >+<booleanAttribute key="useProduct" value="true"/> >+</launchConfiguration> >#P org.eclipse.ocl.ecore.tests >Index: src/org/eclipse/ocl/ecore/tests/CollectionsTest.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/tests/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/CollectionsTest.java,v >retrieving revision 1.13 >diff -u -r1.13 CollectionsTest.java >--- src/org/eclipse/ocl/ecore/tests/CollectionsTest.java 15 Jan 2009 04:22:06 -0000 1.13 >+++ src/org/eclipse/ocl/ecore/tests/CollectionsTest.java 6 Jul 2009 22:10:27 -0000 >@@ -21,6 +21,7 @@ > > import java.util.Arrays; > import java.util.Collection; >+import java.util.LinkedHashSet; > import java.util.List; > import java.util.Set; > >@@ -273,6 +274,15 @@ > .asList(new Object[]{"a", "b", "c", "d", "e"})); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ > > assertEquals(expected, result); >+ >+ // return type is OrderedSet >+ >+ expr = helper >+ .createQuery("OrderedSet{'a', 'b', 'd', 'e'}->including('c')"); //$NON-NLS-1$ >+ >+ Object objResult = ocl.evaluate("", expr); //$NON-NLS-1$ >+ >+ assertTrue(objResult instanceof LinkedHashSet<?>); > } catch (Exception e) { > fail("Failed to parse or evaluate: " + e.getLocalizedMessage()); //$NON-NLS-1$ > } >@@ -326,6 +336,15 @@ > .asList(new Object[]{"a", "b", "d", "e"})); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ > > assertEquals(expected, result); >+ >+ // return type is OrderedSet >+ >+ expr = helper >+ .createQuery("OrderedSet{'a', 'b', 'd', 'e'}->excluding('c')"); //$NON-NLS-1$ >+ >+ Object objResult = ocl.evaluate("", expr); //$NON-NLS-1$ >+ >+ assertTrue(objResult instanceof LinkedHashSet<?>); > } catch (Exception e) { > fail("Failed to parse or evaluate: " + e.getLocalizedMessage()); //$NON-NLS-1$ > } >Index: org.eclipse.ocl.ecore.tests.AllTests.launch >=================================================================== >RCS file: org.eclipse.ocl.ecore.tests.AllTests.launch >diff -N org.eclipse.ocl.ecore.tests.AllTests.launch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ org.eclipse.ocl.ecore.tests.AllTests.launch 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,38 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig"> >+<booleanAttribute key="append.args" value="true"/> >+<booleanAttribute key="askclear" value="false"/> >+<booleanAttribute key="automaticAdd" value="true"/> >+<booleanAttribute key="automaticValidate" value="false"/> >+<stringAttribute key="bootstrap" value=""/> >+<stringAttribute key="checked" value="[NONE]"/> >+<booleanAttribute key="clearConfig" value="true"/> >+<booleanAttribute key="clearws" value="true"/> >+<booleanAttribute key="clearwslog" value="false"/> >+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/> >+<booleanAttribute key="default" value="true"/> >+<booleanAttribute key="includeOptional" value="true"/> >+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/> >+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> >+<listEntry value="/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/AllTests.java"/> >+</listAttribute> >+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> >+<listEntry value="1"/> >+</listAttribute> >+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> >+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> >+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> >+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/> >+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ocl.ecore.tests.AllTests"/> >+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/> >+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ocl.ecore.tests"/> >+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> >+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms128m -Xmx768m -XX:MaxPermSize=128M"/> >+<stringAttribute key="pde.version" value="3.3"/> >+<stringAttribute key="product" value="org.eclipse.sdk.ide"/> >+<booleanAttribute key="show_selected_only" value="false"/> >+<booleanAttribute key="tracing" value="false"/> >+<booleanAttribute key="useDefaultConfig" value="true"/> >+<booleanAttribute key="useDefaultConfigArea" value="false"/> >+<booleanAttribute key="useProduct" value="true"/> >+</launchConfiguration> >#P org.eclipse.ocl.ecore >Index: model/oclstdlib.ecore >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl.ecore/model/oclstdlib.ecore,v >retrieving revision 1.4 >diff -u -r1.4 oclstdlib.ecore >--- model/oclstdlib.ecore 11 May 2008 05:37:13 -0000 1.4 >+++ model/oclstdlib.ecore 6 Jul 2009 22:10:33 -0000 >@@ -714,10 +714,10 @@ > <eOperations name="intersection" eType="#/0/Set(T)"> > <eParameters name="set" eType="#/0/Set(T)"/> > </eOperations> >- <eOperations name="including" eType="#/0/Set(T)"> >+ <eOperations name="including" eType="#/0/OrderedSet(T)"> > <eParameters name="object" eType="#/0/T"/> > </eOperations> >- <eOperations name="excluding" eType="#/0/Set(T)"> >+ <eOperations name="excluding" eType="#/0/OrderedSet(T)"> > <eParameters name="object" eType="#/0/T"/> > </eOperations> > <eOperations name="symmetricDifference" eType="#/0/Set(T)">
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 246962
:
140911