org.garret.perst
Class Projection<From extends IPersistent,To extends IPersistent>

java.lang.Object
  extended by java.util.AbstractCollection
      extended by java.util.AbstractSet
          extended by java.util.HashSet
              extended by org.garret.perst.Projection
All Implemented Interfaces:
java.lang.Cloneable, java.util.Collection, java.lang.Iterable, java.io.Serializable, java.util.Set

public class Projection<From extends IPersistent,To extends IPersistent>
extends java.util.HashSet<To>

Class use to project selected objects using relation field. For all selected objects (specified by array ort iterator), value of specified field (of IPersistent, array of IPersistent, Link or Relation type) is inspected and all referenced object for projection (duplicate values are eliminated)

See Also:
Serialized Form

Constructor Summary
Projection()
          Default constructor of projection.
Projection(java.lang.Class type, java.lang.String fieldName)
          Constructor of projection specified by class and field name of projected objects
 
Method Summary
 boolean add(To obj)
          Add object to the set
 void join(Projection<From,To> prj)
          Join this projection with another projection.
 void project(java.util.Collection<From> c)
          Project specified selection
 void project(From obj)
          Project specified object
 void project(From[] selection)
          Project specified selection
 void project(java.util.Iterator<From> selection)
          Project specified selection
 void reset()
          Reset projection - clear result of preceding project and join operations
 void setProjectionField(java.lang.Class type, java.lang.String fieldName)
          Specify class of the projected objects and projection field name
 IPersistent[] toPersistentArray()
          Get result of preceding project and join operations
 
Methods inherited from class java.util.HashSet
add, clear, clone, contains, isEmpty, iterator, remove, size
 
Methods inherited from class java.util.AbstractSet
equals, hashCode, removeAll
 
Methods inherited from class java.util.AbstractCollection
addAll, containsAll, retainAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Set
addAll, containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
 

Constructor Detail

Projection

public Projection()
Default constructor of projection. This constructor should be used only when you are going to derive your class from Projection and redefine map method in it or specify type and fieldName later using setProjectionField method


Projection

public Projection(java.lang.Class type,
                  java.lang.String fieldName)
Constructor of projection specified by class and field name of projected objects

Parameters:
type - base class for selected objects
fieldName - field name used to perform projection
Method Detail

add

public boolean add(To obj)
Add object to the set

Overrides:
add in class java.util.HashSet
Parameters:
obj - objet to be added

join

public void join(Projection<From,To> prj)
Join this projection with another projection. Result of this join is set of objects present in both projections.


project

public void project(java.util.Collection<From> c)
Project specified selection

Parameters:
c - selection iterator specifying selected objects

project

public void project(From obj)
Project specified object

Parameters:
obj - selected object

project

public void project(From[] selection)
Project specified selection

Parameters:
selection - array with selected object

project

public void project(java.util.Iterator<From> selection)
Project specified selection

Parameters:
selection - iterator specifying selected objects

reset

public void reset()
Reset projection - clear result of preceding project and join operations


setProjectionField

public void setProjectionField(java.lang.Class type,
                               java.lang.String fieldName)
Specify class of the projected objects and projection field name

Parameters:
type - base class for selected objects
fieldName - field name used to perform projection

toPersistentArray

public IPersistent[] toPersistentArray()
Get result of preceding project and join operations

Returns:
array of objects