Package org.eclipse.m2m.atl.emftvm.util
Class LazyBag<E>
- java.lang.Object
-
- org.eclipse.m2m.atl.emftvm.util.LazyCollection<E>
-
- org.eclipse.m2m.atl.emftvm.util.LazyBag<E>
-
- Type Parameters:
E-
- All Implemented Interfaces:
java.lang.Iterable<E>,java.util.Collection<E>
- Direct Known Subclasses:
LazyBag.IncludingBag,LazyBag.IntegerRangeBag,LazyBag.LongRangeBag,LazyBag.UnionBag,LazyBagOnCollection
public class LazyBag<E> extends LazyCollection<E>
ImmutableCollectionthat supports lazy evaluation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classLazyBag.BagIntersectionIteratorLazyCollection.ReadOnlyIteratorthat returns only elements contained in both underlying collections, where the element occurs as often as in the collection with the least occurrences of the element.static classLazyBag.IncludingBag<E>LazyBagthat implements the "including" operation.static classLazyBag.IntegerRangeBagLazyBagthat represents a range running from a first to lastInteger.static classLazyBag.LongRangeBagLazyBagthat represents a range running from a first to lastLong.static classLazyBag.UnionBag<E>LazyBagthat implements the "union" operation.-
Nested classes/interfaces inherited from class org.eclipse.m2m.atl.emftvm.util.LazyCollection
LazyCollection.AppendIterator, LazyCollection.CachingIterator, LazyCollection.CachingSetIterator, LazyCollection.CollectIterator<T>, LazyCollection.ExcludingIterator, LazyCollection.FilterIterator, LazyCollection.FlattenIterator, LazyCollection.FlattenSetIterator, LazyCollection.IntegerRangeListIterator, LazyCollection.IntersectionIterator, LazyCollection.IteratorToListIterator, LazyCollection.LongRangeListIterator, LazyCollection.ReadOnlyIterator<E>, LazyCollection.ReadOnlyListIterator<E>, LazyCollection.RejectIterator, LazyCollection.ReverseIterator, LazyCollection.ReverseListIterator, LazyCollection.SelectIterator, LazyCollection.SubListIterator, LazyCollection.SubListListIterator, LazyCollection.SubtractionIterator, LazyCollection.UnionIterator, LazyCollection.UnionSetIterator, LazyCollection.WrappedIterator, LazyCollection.WrappedListIterator
-
-
Field Summary
-
Fields inherited from class org.eclipse.m2m.atl.emftvm.util.LazyCollection
cache, dataSource, occurrences
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LazyBag<E>asBag()Returns a Bag identical to self.java.lang.StringasString(ExecEnv env)Evaluates the collection as an OCL String.<T> LazyBag<T>collect(CodeBlock function)Collects the return values offunctionfor each of the elements of this collection.protected voidcreateCache()Creates the cache collections.booleanequals(java.lang.Object o)LazyBag<E>excluding(java.lang.Object object)Returns the bag containing all elements of self apart from all occurrences ofobject.LazyBag<E>excludingAll(java.util.Collection<?> coll)Returns the collection containing all elements of self minuscoll.LazyBag<?>flatten()If the element type is not a collection type this results in the same self.inthashCode()LazyBag<E>including(E object)Returns the bag containing all elements of self plusobject.LazyBag<E>including(E object, int index)Returns the collection containing all elements of self plusobject.LazyBag<E>includingAll(java.util.Collection<? extends E> coll)Returns the collection containing all elements of self pluscoll.LazyBag<E>includingAll(java.util.Collection<? extends E> coll, int index)Returns the collection containing all elements of self pluscoll.LazyBag<E>includingRange(E first, E last)Returns the bag containing all elements of self plus the bag offirstrunning tolast.LazyBag<E>intersection(LazyBag<E> bag)Returns the intersection of self andbag(i.e, the bag of all elements that are in both self ands, where the element occurs as often as in the bag with the least element occurrences).LazySet<E>intersection(LazySet<E> set)Returns the intersection of self andset.LazyBag<E>reject(CodeBlock condition)Rejects all elements from this collection for which theconditionevaluates totrue.LazyBag<E>select(CodeBlock condition)Selects all elements from this collection for which theconditionevaluates totrue.LazyList<E>sortedBy(CodeBlock body)Results in the Collection containing all elements of the source collection.LazyBag<E>union(LazyBag<? extends E> bag)Returns the union of self andbag.LazyBag<E>union(LazySet<E> set)Returns the union of self andset.-
Methods inherited from class org.eclipse.m2m.atl.emftvm.util.LazyCollection
add, addAll, any, appendElements, asOrderedSet, asSequence, asSet, clear, contains, containsAll, containsAny, count, excludes, excludesAll, exists, exists2, forAll, forAll2, includes, includesAll, isEmpty, isUnique, iterate, iterator, mappedBy, mappedBySingle, max, min, notEmpty, one, product, remove, removeAll, retainAll, size, sum, toArray, toArray, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Method Detail
-
createCache
protected void createCache()
Creates the cache collections.- Overrides:
createCachein classLazyCollection<E>
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equalsin interfacejava.util.Collection<E>- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacejava.util.Collection<E>- Overrides:
hashCodein classjava.lang.Object
-
asString
public java.lang.String asString(ExecEnv env)
Evaluates the collection as an OCL String.- Specified by:
asStringin classLazyCollection<E>- Parameters:
env- the execution environment- Returns:
- the String representation of this
LazyCollection.
-
union
public LazyBag<E> union(LazyBag<? extends E> bag)
Returns the union of self andbag.Lazy operation.
- Parameters:
bag- the collection to union with this- Returns:
- The union of self and
bag.
-
union
public LazyBag<E> union(LazySet<E> set)
Returns the union of self andset.Lazy operation.
- Parameters:
set- the collection to union with this- Returns:
- The union of self and
set.
-
intersection
public LazyBag<E> intersection(LazyBag<E> bag)
Returns the intersection of self andbag(i.e, the bag of all elements that are in both self ands, where the element occurs as often as in the bag with the least element occurrences).Lazy operation.
- Parameters:
bag- the collection to intersect with this- Returns:
- The intersection of self and
bag.
-
intersection
public LazySet<E> intersection(LazySet<E> set)
Returns the intersection of self andset.Lazy operation.
- Parameters:
set- the collection to intersect with this- Returns:
- The intersection of self and
set.
-
including
public LazyBag<E> including(E object)
Returns the bag containing all elements of self plusobject.Lazy operation.
- Specified by:
includingin classLazyCollection<E>- Parameters:
object- the object to include- Returns:
- The bag containing all elements of self plus
object.
-
including
public LazyBag<E> including(E object, int index)
Returns the collection containing all elements of self plusobject.Lazy operation.
- Specified by:
includingin classLazyCollection<E>- Parameters:
object- the object to includeindex- the index at which to insertcoll(starting at 1)- Returns:
- The collection containing all elements of self plus
object.
-
includingAll
public LazyBag<E> includingAll(java.util.Collection<? extends E> coll)
Returns the collection containing all elements of self pluscoll.Lazy operation.
- Specified by:
includingAllin classLazyCollection<E>- Parameters:
coll- the collection to include- Returns:
- The collection containing all elements of self plus
coll.
-
includingAll
public LazyBag<E> includingAll(java.util.Collection<? extends E> coll, int index)
Returns the collection containing all elements of self pluscoll.Lazy operation.
- Specified by:
includingAllin classLazyCollection<E>- Parameters:
coll- the collection to includeindex- the index at which to insertcoll(starting at 1)- Returns:
- The collection containing all elements of self plus
coll. - Throws:
java.lang.UnsupportedOperationException
-
excluding
public LazyBag<E> excluding(java.lang.Object object)
Returns the bag containing all elements of self apart from all occurrences ofobject.Lazy operation.
- Specified by:
excludingin classLazyCollection<E>- Parameters:
object- the object to exclude- Returns:
- The bag containing all elements of self apart from all occurrences of
object.
-
excludingAll
public LazyBag<E> excludingAll(java.util.Collection<?> coll)
Returns the collection containing all elements of self minuscoll.Lazy operation.
- Specified by:
excludingAllin classLazyCollection<E>- Parameters:
coll- the collection to exclude- Returns:
- The collection containing all elements of self minus
coll.
-
flatten
public LazyBag<?> flatten()
If the element type is not a collection type this results in the same self. If the element type is a collection type, the result is the sequence containing all the elements of all the elements of self. The order of the elements is partial.Lazy operation.
- Returns:
- if self.type.elementType.oclIsKindOf(CollectionType) then
self->iterate(c; acc : Bag() = Bag{} |
acc->union(c->asBag() ) )
else
self
endif
-
asBag
public LazyBag<E> asBag()
Returns a Bag identical to self. This operation exists for convenience reasons.Lazy operation.
- Overrides:
asBagin classLazyCollection<E>- Returns:
- A Bag identical to self. This operation exists for convenience reasons.
-
includingRange
public LazyBag<E> includingRange(E first, E last)
Returns the bag containing all elements of self plus the bag offirstrunning tolast.Lazy operation.
- Specified by:
includingRangein classLazyCollection<E>- Parameters:
first- the first object of the range to includelast- the last object of the range to include- Returns:
- The bag containing all elements of self plus the bag of
firstrunning tolast
-
select
public LazyBag<E> select(CodeBlock condition)
Selects all elements from this collection for which theconditionevaluates totrue.- Parameters:
condition- the condition function- Returns:
- a new lazy bag with only the selected elements.
-
reject
public LazyBag<E> reject(CodeBlock condition)
Rejects all elements from this collection for which theconditionevaluates totrue.- Parameters:
condition- the condition function- Returns:
- a new lazy bag without the rejected elements.
-
collect
public <T> LazyBag<T> collect(CodeBlock function)
Collects the return values offunctionfor each of the elements of this collection.- Type Parameters:
T- the element type- Parameters:
function- the return value function- Returns:
- a new lazy bag with the
functionreturn values.
-
sortedBy
public LazyList<E> sortedBy(CodeBlock body)
Results in the Collection containing all elements of the source collection. The element for which body has the lowest value comes first, and so on. The type of the body expression must have the<operation defined. The<operation must return a Boolean value and must be transitive (i.e., ifa < bandb < cthena < c).- Specified by:
sortedByin classLazyCollection<E>- Parameters:
body- the function to evaluate on each element- Returns:
- the sorted collection
-
-