Package com.evolveum.midpoint.prism
Interface SmartVisitable<T extends SmartVisitable<T>>
- All Superinterfaces:
Visitable<T>
- All Known Subinterfaces:
ComplexTypeDefinition
,ComplexTypeDefinitionDelegator
,CompositeObjectDefinition
,CompositeObjectDefinitionDelegator
,ContainerDefinitionDelegator<C>
,Definition
,DefinitionDelegator
,EnumerationTypeDefinition
,ItemDefinition<I>
,ItemDefinitionDelegator<I>
,ItemWrapper<I,
,VW> ObjectDefinitionDelegator<O>
,PartiallyMutableItemDefinition<I>
,PartiallyMutableItemDefinition.Attribute<T>
,PartiallyMutableItemDefinition.Container<C>
,PartiallyMutableItemDefinition.Property<T>
,PartiallyMutableItemDefinition.Reference
,PrismContainerDefinition<C>
,PrismContainerWrapper<C>
,PrismObjectDefinition<O>
,PrismObjectWrapper<O>
,PrismPropertyDefinition<T>
,PrismPropertyWrapper<T>
,PrismReferenceDefinition
,PrismReferenceWrapper<R>
,PropertyDefinitionDelegator<T>
,ReferenceDefinitionDelegator
,ResourceAttributeDefinitionDelegator<T>
,ResourceAttributeWrapper<T>
,ResourceObjectClassDefinition
,ResourceObjectClassDefinitionDelegator
,ResourceObjectDefinition
,ResourceObjectDefinitionDelegator
,ResourceObjectTypeDefinition
,ResourceObjectTypeDefinitionDelegator
,ShadowAssociationDefinition
,ShadowAssociationsComplexTypeDefinition
,ShadowAssociationsContainerDefinition
,ShadowAttributeDefinition<V,
,D, RV, SA> ShadowAttributesComplexTypeDefinition
,ShadowAttributesContainerDefinition
,ShadowAttributesContainerDefinitionDelegator
,ShadowItemsComplexTypeDefinition
,ShadowReferenceAttributeDefinition
,ShadowSimpleAttributeDefinition<T>
,ShadowWrapper
,SimpleTypeDefinition
,TypeDefinition
,TypeDefinitionDelegator
- All Known Implementing Classes:
AbstractResourceObjectDefinitionImpl
,AssignmentHolderWrapper
,AssociationAttributeMappingWrapper
,AssociationInboundExpressionWrapper
,AssociationMappingExpressionWrapper
,AssociationOutboundExpressionWrapper
,AuthenticationAttemptWrapper
,AuthenticationBehaviorWrapper
,CaseWorkItemTypeWrapper
,ComplexTypeDefinitionImpl
,CompositeObjectDefinitionImpl
,DefinitionImpl
,DummyPrismObjectDefinition
,EnumerationTypeDefinitionImpl
,ExpressionWrapper
,ItemDefinitionImpl
,ItemWrapperImpl
,NormalizationAwareResourceAttributeDefinition
,ObjectTypeAttributeMappingWrapper
,PrismContainerDefinitionImpl
,PrismContainerWrapperImpl
,PrismObjectDefinitionImpl
,PrismObjectWrapperImpl
,PrismPropertyDefinitionImpl
,PrismPropertyWrapperImpl
,PrismReferenceDefinitionImpl
,PrismReferenceWrapperImpl
,PrismSchemaWrapper
,ProfilingClassLoggerContainerWrapperImpl
,ProtectedStringTypeWrapperImpl
,ResourceAttributeWrapperImpl
,ResourceObjectClassDefinitionImpl
,ResourceObjectTypeDefinitionImpl
,ResourceWrapper
,ShadowAssociationDefinitionImpl
,ShadowAssociationsContainerDefinitionImpl
,ShadowAssociationValueWrapper
,ShadowAssociationWrapperImpl
,ShadowAttributeDefinitionImpl
,ShadowAttributesContainerDefinitionImpl
,ShadowReferenceAttributeDefinitionImpl
,ShadowSimpleAttributeDefinitionImpl
,ShadowWrapperImpl
,SimpleTypeDefinitionImpl
,TransformableComplexTypeDefinition
,TransformableContainerDefinition
,TransformableDefinition
,TransformableItemDefinition
,TransformableObjectDefinition
,TransformablePropertyDefinition
,TransformablePropertyDefinition.RefinedAttribute
,TransformablePropertyDefinition.ResourceAttribute
,TransformableReferenceDefinition
,TypeDefinitionImpl
,ValueMetadataWrapperImpl
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
Modifier and TypeMethodDescriptionboolean
accept
(Visitor<T> visitor, SmartVisitation<T> visitation)
-
Method Details
-
accept
- Returns:
- false if we already was here
-