Package com.evolveum.midpoint.prism
Interface SmartVisitable<T extends SmartVisitable<T>>
-
- All Superinterfaces:
Visitable<T>
- All Known Subinterfaces:
AttributeContainerDefinitionDelegator
,AttributeDefinitionDelegator<T>
,ComplexTypeDefinition
,ComplexTypeDefinitionDelegator
,CompositeRefinedObjectClassDefinition
,ContainerDefinitionDelegator<C>
,Definition
,DefinitionDelegator
,ItemDefinition<I>
,ItemDefinitionDelegator<I>
,LayerRefinedAttributeDefinition<T>
,LayerRefinedObjectClassDefinition
,MutableComplexTypeDefinition
,MutableDefinition
,MutableItemDefinition<I>
,MutableObjectClassComplexTypeDefinition
,MutablePrismContainerDefinition<C>
,MutablePrismObjectDefinition<O>
,MutablePrismPropertyDefinition<T>
,MutablePrismReferenceDefinition
,MutableResourceAttributeDefinition<T>
,MutableTypeDefinition
,ObjectClassComplexTypeDefinition
,ObjectClassTypeDefinitionDelegator
,ObjectDefinitionDelegator<O>
,PrismContainerDefinition<C>
,PrismObjectDefinition<O>
,PrismPropertyDefinition<T>
,PrismReferenceDefinition
,PropertyDefinitionDelegator<T>
,ReferenceDefinitionDelegator
,RefinedAttributeDefinition<T>
,RefinedAttributeDefinitionDelegator<T>
,RefinedObjectClassDefinition
,ResourceAttributeContainerDefinition
,ResourceAttributeDefinition<T>
,SimpleTypeDefinition
,TypeDefinition
,TypeDefinitionDelegator
- All Known Implementing Classes:
com.evolveum.midpoint.prism.impl.ComplexTypeDefinitionImpl
,CompositeRefinedObjectClassDefinitionImpl
,com.evolveum.midpoint.prism.impl.DefinitionImpl
,com.evolveum.midpoint.prism.impl.ItemDefinitionImpl
,LayerRefinedAttributeDefinitionImpl
,LayerRefinedObjectClassDefinitionImpl
,ObjectClassComplexTypeDefinitionImpl
,com.evolveum.midpoint.prism.impl.PrismContainerDefinitionImpl
,com.evolveum.midpoint.prism.impl.PrismPropertyDefinitionImpl
,RefinedAttributeDefinitionImpl
,RefinedObjectClassDefinitionImpl
,ResourceAttributeContainerDefinitionImpl
,ResourceAttributeDefinitionImpl
,com.evolveum.midpoint.prism.impl.TypeDefinitionImpl
public interface SmartVisitable<T extends SmartVisitable<T>> extends Visitable<T>
Visitable element that is smart enough to avoid being visited twice during one visitation. It is needed for object graphs with cycles. Standard visitations fail with stack overflow there. (Or should we call it CycleProofVisitable with CycleProofVisitation?) A little bit experimental.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
accept(Visitor<T> visitor, SmartVisitation<T> visitation)
-
-
-
Method Detail
-
accept
boolean accept(Visitor<T> visitor, SmartVisitation<T> visitation)
- Returns:
- false if we already was here
-
-