public abstract class DescriptorIterator extends Object
Modifier and Type | Field and Description |
---|---|
static int |
CascadeAllParts |
protected int |
cascadeDepth |
static int |
CascadePrivateParts |
protected ClassDescriptor |
currentDescriptor |
protected DatabaseMapping |
currentMapping |
static int |
NoCascading |
protected Object |
result |
protected AbstractSession |
session |
protected boolean |
shouldBreak |
protected boolean |
shouldIterateOnAggregates |
protected boolean |
shouldIterateOnIndirectionObjects |
protected boolean |
shouldIterateOnPrimitives |
protected boolean |
shouldIterateOverIndirectionObjects |
protected boolean |
shouldIterateOverUninstantiatedIndirectionObjects |
protected boolean |
shouldIterateOverWrappedObjects |
protected IdentityHashtable |
visitedObjects |
protected Stack |
visitedStack |
Constructor and Description |
---|
DescriptorIterator()
Construct a typical iterator:
iterate over all the objects
process the objects contained by "value holders"...
|
Modifier and Type | Method and Description |
---|---|
int |
getCascadeDepth() |
ClassDescriptor |
getCurrentDescriptor() |
DatabaseMapping |
getCurrentMapping() |
protected ClassDescriptor |
getDescriptorFor(Object object)
Fetch and return the descriptor for the specified object.
|
Object |
getResult() |
AbstractSession |
getSession() |
Object |
getVisitedGrandparent()
Return the second-to-last object visited.
|
IdentityHashtable |
getVisitedObjects() |
Object |
getVisitedParent()
Return the last object visited.
|
Stack |
getVisitedStack() |
protected void |
internalIterateAggregateObject(Object aggregateObject)
Iterate an aggregate object
(i.e.
|
protected void |
internalIterateIndirectContainer(IndirectContainer container)
Iterate an indirect container (IndirectList or IndirectMap).
|
protected void |
internalIteratePrimitive(Object primitiveValue)
Iterate a primitive object (String, Date, Integer, etc.).
|
protected void |
internalIterateReferenceObject(Object referenceObject)
Iterate a (a non-Aggregate) reference object.
|
protected void |
internalIterateValueHolder(ValueHolderInterface valueHolder)
Iterate a value holder.
|
protected abstract void |
iterate(Object object)
To define a new iterator create a subclass and define at least this method.
|
void |
iterateForAggregateMapping(Object aggregateObject,
DatabaseMapping mapping,
ClassDescriptor descriptor)
Iterate on the mapping's reference object and
recursively iterate on the reference object's
reference objects.
|
void |
iterateIndirectContainerForMapping(IndirectContainer container,
DatabaseMapping mapping)
Iterate on the indirection object for its mapping.
|
void |
iteratePrimitiveForMapping(Object primitiveValue,
DatabaseMapping mapping)
Iterate on the primitive value for its mapping.
|
void |
iterateReferenceObjectForMapping(Object referenceObject,
DatabaseMapping mapping)
Iterate on the mapping's reference object and
recursively iterate on the reference object's
reference objects.
|
protected void |
iterateReferenceObjects(Object sourceObject)
Iterate over the sourceObject's reference objects,
updating the visited stack appropriately.
|
void |
iterateValueHolderForMapping(ValueHolderInterface valueHolder,
DatabaseMapping mapping)
Iterate on the value holder for its mapping.
|
void |
setCascadeDepth(int cascadeDepth) |
void |
setCurrentDescriptor(ClassDescriptor currentDescriptor) |
void |
setCurrentMapping(DatabaseMapping currentMapping) |
void |
setResult(Object result) |
void |
setSession(AbstractSession session) |
void |
setShouldBreak(boolean shouldBreak) |
void |
setShouldIterateOnAggregates(boolean shouldIterateOnAggregates)
Set whether the aggregate reference objects themselves
should be processed.
|
void |
setShouldIterateOnIndirectionObjects(boolean shouldIterateOnIndirectionObjects)
Set whether the indirection objects themselves (e.g.
|
void |
setShouldIterateOnPrimitives(boolean shouldIterateOnPrimitives)
Set whether to process primitive reference objects
(e.g.
|
void |
setShouldIterateOverIndirectionObjects(boolean shouldIterateOverIndirectionObjects)
Set whether to process the objects contained by indirection objects
(e.g.
|
void |
setShouldIterateOverUninstantiatedIndirectionObjects(boolean shouldIterateOverUninstantiatedIndirectionObjects)
Set whether to *instantiate* and process the objects
contained by indirection objects (e.g.
|
void |
setShouldIterateOverWrappedObjects(boolean shouldIterateOverWrappedObjects) |
void |
setVisitedObjects(IdentityHashtable visitedObjects) |
protected void |
setVisitedStack(Stack visitedStack) |
boolean |
shouldBreak() |
boolean |
shouldCascadeAllParts() |
boolean |
shouldCascadeNoParts() |
boolean |
shouldCascadePrivateParts() |
boolean |
shouldIterateOnAggregates()
Return whether the aggregate reference objects themselves
should be processed.
|
boolean |
shouldIterateOnIndirectionObjects()
Return whether the indirection objects themselves (e.g.
|
boolean |
shouldIterateOnPrimitives()
Return whether to process primitive reference objects
(e.g.
|
boolean |
shouldIterateOverIndirectionObjects()
Return whether to process the objects contained by indirection objects
(e.g.
|
boolean |
shouldIterateOverUninstantiatedIndirectionObjects()
Return whether to *instantiate* and process the objects
contained by indirection objects (e.g.
|
boolean |
shouldIterateOverWrappedObjects() |
void |
startIterationOn(Object sourceObject)
This is the root method called to start the iteration.
|
public static final int NoCascading
public static final int CascadePrivateParts
public static final int CascadeAllParts
protected IdentityHashtable visitedObjects
protected Stack visitedStack
protected AbstractSession session
protected DatabaseMapping currentMapping
protected ClassDescriptor currentDescriptor
protected Object result
protected boolean shouldIterateOverIndirectionObjects
protected boolean shouldIterateOverUninstantiatedIndirectionObjects
protected boolean shouldIterateOverWrappedObjects
protected boolean shouldIterateOnIndirectionObjects
protected boolean shouldIterateOnAggregates
protected boolean shouldIterateOnPrimitives
protected boolean shouldBreak
protected int cascadeDepth
public DescriptorIterator()
public int getCascadeDepth()
public ClassDescriptor getCurrentDescriptor()
public DatabaseMapping getCurrentMapping()
protected ClassDescriptor getDescriptorFor(Object object)
public Object getResult()
public AbstractSession getSession()
public Object getVisitedGrandparent()
public IdentityHashtable getVisitedObjects()
public Object getVisitedParent()
public Stack getVisitedStack()
protected void internalIterateAggregateObject(Object aggregateObject)
protected void internalIterateIndirectContainer(IndirectContainer container)
protected void internalIteratePrimitive(Object primitiveValue)
protected void internalIterateReferenceObject(Object referenceObject)
protected void internalIterateValueHolder(ValueHolderInterface valueHolder)
protected abstract void iterate(Object object)
public void iterateForAggregateMapping(Object aggregateObject, DatabaseMapping mapping, ClassDescriptor descriptor)
public void iterateIndirectContainerForMapping(IndirectContainer container, DatabaseMapping mapping)
public void iteratePrimitiveForMapping(Object primitiveValue, DatabaseMapping mapping)
public void iterateReferenceObjectForMapping(Object referenceObject, DatabaseMapping mapping)
protected void iterateReferenceObjects(Object sourceObject)
public void iterateValueHolderForMapping(ValueHolderInterface valueHolder, DatabaseMapping mapping)
public void setCascadeDepth(int cascadeDepth)
public void setCurrentDescriptor(ClassDescriptor currentDescriptor)
public void setCurrentMapping(DatabaseMapping currentMapping)
public void setResult(Object result)
public void setSession(AbstractSession session)
public void setShouldBreak(boolean shouldBreak)
public void setShouldIterateOnAggregates(boolean shouldIterateOnAggregates)
public void setShouldIterateOnIndirectionObjects(boolean shouldIterateOnIndirectionObjects)
public void setShouldIterateOnPrimitives(boolean shouldIterateOnPrimitives)
public void setShouldIterateOverIndirectionObjects(boolean shouldIterateOverIndirectionObjects)
#setShouldIterateOverUninstantiatedIndirectionObjects()
public void setShouldIterateOverUninstantiatedIndirectionObjects(boolean shouldIterateOverUninstantiatedIndirectionObjects)
public void setShouldIterateOverWrappedObjects(boolean shouldIterateOverWrappedObjects)
public void setVisitedObjects(IdentityHashtable visitedObjects)
protected void setVisitedStack(Stack visitedStack)
public boolean shouldBreak()
public boolean shouldCascadeAllParts()
public boolean shouldCascadeNoParts()
public boolean shouldCascadePrivateParts()
public boolean shouldIterateOnAggregates()
public boolean shouldIterateOnIndirectionObjects()
public boolean shouldIterateOnPrimitives()
public boolean shouldIterateOverIndirectionObjects()
public boolean shouldIterateOverUninstantiatedIndirectionObjects()
public boolean shouldIterateOverWrappedObjects()
public void startIterationOn(Object sourceObject)
Copyright © 2023. All rights reserved.