org.eclipse.ocl.examples.pivot.utilities
Class CompleteElementIterable<O,I>

java.lang.Object
  extended by org.eclipse.ocl.examples.pivot.utilities.CompleteElementIterable<O,I>
Type Parameters:
O - The Outer type of the Complete Element
I - The Inner type of the iterated Complete Element child
All Implemented Interfaces:
java.lang.Iterable<I>
Direct Known Subclasses:
MetaModelManager.CompleteClassPropertiesIterable, MetaModelManager.CompleteClassSuperClassesIterable, MetaModelManager.CompleteElementCommentsIterable, MetaModelManager.CompleteElementInvariantsIterable, MetaModelManager.CompleteTypeOperationsIterable

public abstract class CompleteElementIterable<O,I>
extends java.lang.Object
implements java.lang.Iterable<I>

A CompleteElementIterable supports iteration over the multiple iterable contributions to a Complete Element as if all were merged in a composite element.


Nested Class Summary
protected  class CompleteElementIterable.Iterator
           
 
Field Summary
protected  java.lang.Iterable<? extends O> iterables
           
 
Constructor Summary
CompleteElementIterable(java.lang.Iterable<? extends O> iterables)
           
 
Method Summary
protected abstract  java.lang.Iterable<I> getInnerIterable(O iterable)
          Return the iterables for an inner iteration over the iterable.
protected  I getInnerValue(I element)
           
 java.util.Iterator<I> iterator()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

iterables

@NonNull
protected final java.lang.Iterable<? extends O> iterables
Constructor Detail

CompleteElementIterable

public CompleteElementIterable(@NonNull
                               java.lang.Iterable<? extends O> iterables)
Method Detail

getInnerIterable

protected abstract java.lang.Iterable<I> getInnerIterable(@NonNull
                                                          O iterable)
Return the iterables for an inner iteration over the iterable. A null return may be used to indicate no inner iterations are necessary.

Parameters:
iterable -
Returns:
the inner iterable or null for none.

getInnerValue

protected I getInnerValue(@NonNull
                          I element)

iterator

@NonNull
public java.util.Iterator<I> iterator()
Specified by:
iterator in interface java.lang.Iterable<I>