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

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

    Modifier and Type
    Method
    Description
    boolean
    accept(Visitor<T> visitor, SmartVisitation<T> visitation)
     

    Methods inherited from interface com.evolveum.midpoint.prism.Visitable

    accept
  • Method Details