docs.unity3d.com
    Show / Hide Table of Contents

    Class PropertyVisitor

    Base class for implementing algorithms using properties. This is an abstract class.

    Inheritance
    Object
    PropertyVisitor
    Inherited Members
    Object.ToString()
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: Unity.Properties
    Syntax
    public abstract class PropertyVisitor : IPropertyBagVisitor, IListPropertyBagVisitor, IDictionaryPropertyBagVisitor, IPropertyVisitor, ICollectionPropertyVisitor, IListPropertyVisitor, ISetPropertyVisitor, IDictionaryPropertyVisitor

    Methods

    AddAdapter(IPropertyVisitorAdapter)

    Adds an adapter to the visitor.

    Declaration
    public void AddAdapter(IPropertyVisitorAdapter adapter)
    Parameters
    Type Name Description
    IPropertyVisitorAdapter adapter

    The adapter to add.

    IsExcluded<TContainer, TValue>(Property<TContainer, TValue>, ref TContainer, ref TValue)

    Called before visiting each property to determine if the property should be visited.

    Declaration
    protected virtual bool IsExcluded<TContainer, TValue>(Property<TContainer, TValue> property, ref TContainer container, ref TValue value)
    Parameters
    Type Name Description
    Property<TContainer, TValue> property

    The property providing access to the data.

    TContainer container

    The container being visited.

    TValue value

    The value being visited.

    Returns
    Type Description
    Boolean

    true if the property should be skipped; otherwise, false.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TValue

    The value type.

    Remarks

    This method is called after all IExcludePropertyAdapter<TValue> have had a chance to run.

    RemoveAdapter(IPropertyVisitorAdapter)

    Removes an adapter from the visitor.

    Declaration
    public void RemoveAdapter(IPropertyVisitorAdapter adapter)
    Parameters
    Type Name Description
    IPropertyVisitorAdapter adapter

    The adapter to remove.

    VisitCollection<TContainer, TCollection, TElement>(Property<TContainer, TCollection>, ref TContainer, ref TCollection)

    Called when visiting any non-specialized collection property.

    Declaration
    protected virtual void VisitCollection<TContainer, TCollection, TElement>(Property<TContainer, TCollection> property, ref TContainer container, ref TCollection value)
        where TCollection : ICollection<TElement>
    Parameters
    Type Name Description
    Property<TContainer, TCollection> property

    The property providing access to the collection.

    TContainer container

    The container being visited.

    TCollection value

    The collection being visited.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TCollection

    The collection type.

    TElement

    The element type.

    Remarks

    When visiting a specialized collection the appropriate method will be called.

    • VisitList<TContainer, TList, TElement>(Property<TContainer, TList>, ref TContainer, ref TList)

    VisitDictionary<TContainer, TDictionary, TKey, TValue>(Property<TContainer, TDictionary>, ref TContainer, ref TDictionary)

    Called when visiting a specialized dictionary property.

    Declaration
    protected virtual void VisitDictionary<TContainer, TDictionary, TKey, TValue>(Property<TContainer, TDictionary> property, ref TContainer container, ref TDictionary value)
        where TDictionary : IDictionary<TKey, TValue>
    Parameters
    Type Name Description
    Property<TContainer, TDictionary> property

    The property providing access to the dictionary.

    TContainer container

    The container being visited.

    TDictionary value

    The dictionary being visited.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TDictionary

    The dictionary type.

    TKey

    The key type.

    TValue

    The value type.

    VisitList<TContainer, TList, TElement>(Property<TContainer, TList>, ref TContainer, ref TList)

    Called when visiting a specialized list property.

    Declaration
    protected virtual void VisitList<TContainer, TList, TElement>(Property<TContainer, TList> property, ref TContainer container, ref TList value)
        where TList : IList<TElement>
    Parameters
    Type Name Description
    Property<TContainer, TList> property

    The property providing access to the list.

    TContainer container

    The container being visited.

    TList value

    The list being visited.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TList

    The list type.

    TElement

    The element type.

    VisitProperty<TContainer, TValue>(Property<TContainer, TValue>, ref TContainer, ref TValue)

    Called when visiting any leaf property with no specialized handling.

    Declaration
    protected virtual void VisitProperty<TContainer, TValue>(Property<TContainer, TValue> property, ref TContainer container, ref TValue value)
    Parameters
    Type Name Description
    Property<TContainer, TValue> property

    The property providing access to the value.

    TContainer container

    The container being visited.

    TValue value

    The value being visited.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TValue

    The value type.

    VisitSet<TContainer, TSet, TValue>(Property<TContainer, TSet>, ref TContainer, ref TSet)

    Called when visiting a specialized set property.

    Declaration
    protected virtual void VisitSet<TContainer, TSet, TValue>(Property<TContainer, TSet> property, ref TContainer container, ref TSet value)
        where TSet : ISet<TValue>
    Parameters
    Type Name Description
    Property<TContainer, TSet> property

    The property providing access to the list.

    TContainer container

    The container being visited.

    TSet value

    The list being visited.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TSet

    The set type.

    TValue

    The element type.

    Explicit Interface Implementations

    ICollectionPropertyVisitor.Visit<TContainer, TCollection, TElement>(Property<TContainer, TCollection>, ref TContainer, ref TCollection)

    Implement this method to accept visitation for a specialized collection property.

    Declaration
    void ICollectionPropertyVisitor.Visit<TContainer, TCollection, TElement>(Property<TContainer, TCollection> property, ref TContainer container, ref TCollection collection)
        where TCollection : ICollection<TElement>
    Parameters
    Type Name Description
    Property<TContainer, TCollection> property

    The property being visited.

    TContainer container

    The container being visited.

    TCollection collection

    The collection value.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TCollection

    The collection value type.

    TElement

    The collection element type.

    Implements
    ICollectionPropertyVisitor.Visit<TContainer, TCollection, TElement>(Property<TContainer, TCollection>, ref TContainer, ref TCollection)
    Remarks

    This method is invoked by ICollectionPropertyAccept<TCollection>

    IDictionaryPropertyBagVisitor.Visit<TDictionary, TKey, TValue>(IDictionaryPropertyBag<TDictionary, TKey, TValue>, ref TDictionary)

    Implement this method to accept visitation for a collection of properties.

    Declaration
    void IDictionaryPropertyBagVisitor.Visit<TDictionary, TKey, TValue>(IDictionaryPropertyBag<TDictionary, TKey, TValue> properties, ref TDictionary container)
        where TDictionary : IDictionary<TKey, TValue>
    Parameters
    Type Name Description
    IDictionaryPropertyBag<TDictionary, TKey, TValue> properties

    The properties of the container.

    TDictionary container

    The container being visited.

    Type Parameters
    Name Description
    TDictionary

    The dictionary type.

    TKey

    The key type.

    TValue

    The value type.

    Implements
    IDictionaryPropertyBagVisitor.Visit<TDictionary, TKey, TValue>(IDictionaryPropertyBag<TDictionary, TKey, TValue>, ref TDictionary)
    Remarks

    This method is invoked by IDictionaryPropertyBagAccept<TContainer>.

    IDictionaryPropertyVisitor.Visit<TContainer, TDictionary, TKey, TValue>(Property<TContainer, TDictionary>, ref TContainer, ref TDictionary)

    Implement this method to accept visitation for a specialized dictionary property.

    Declaration
    void IDictionaryPropertyVisitor.Visit<TContainer, TDictionary, TKey, TValue>(Property<TContainer, TDictionary> property, ref TContainer container, ref TDictionary dictionary)
        where TDictionary : IDictionary<TKey, TValue>
    Parameters
    Type Name Description
    Property<TContainer, TDictionary> property

    The property being visited.

    TContainer container

    The container being visited.

    TDictionary dictionary

    The dictionary value.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TDictionary

    The dictionary value type.

    TKey

    The key type.

    TValue

    The value type.

    Implements
    IDictionaryPropertyVisitor.Visit<TContainer, TDictionary, TKey, TValue>(Property<TContainer, TDictionary>, ref TContainer, ref TDictionary)
    Remarks

    This method is invoked by IDictionaryPropertyAccept<TDictionary>

    IListPropertyBagVisitor.Visit<TList, TElement>(IListPropertyBag<TList, TElement>, ref TList)

    Implement this method to accept visitation for a collection of properties.

    Declaration
    void IListPropertyBagVisitor.Visit<TList, TElement>(IListPropertyBag<TList, TElement> properties, ref TList container)
        where TList : IList<TElement>
    Parameters
    Type Name Description
    IListPropertyBag<TList, TElement> properties

    The properties of the container.

    TList container

    The container being visited.

    Type Parameters
    Name Description
    TList

    The list type.

    TElement

    The element type.

    Implements
    IListPropertyBagVisitor.Visit<TList, TElement>(IListPropertyBag<TList, TElement>, ref TList)
    Remarks

    This method is invoked by Accept(IListPropertyBagVisitor, ref TContainer).

    IListPropertyVisitor.Visit<TContainer, TList, TElement>(Property<TContainer, TList>, ref TContainer, ref TList)

    Implement this method to accept visitation for a specialized list property.

    Declaration
    void IListPropertyVisitor.Visit<TContainer, TList, TElement>(Property<TContainer, TList> property, ref TContainer container, ref TList list)
        where TList : IList<TElement>
    Parameters
    Type Name Description
    Property<TContainer, TList> property

    The property being visited.

    TContainer container

    The container being visited.

    TList list

    The list value.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TList

    The list value type.

    TElement

    The collection element type.

    Implements
    IListPropertyVisitor.Visit<TContainer, TList, TElement>(Property<TContainer, TList>, ref TContainer, ref TList)
    Remarks

    This method is invoked by IListPropertyAccept<TList>

    IPropertyBagVisitor.Visit<TContainer>(IPropertyBag<TContainer>, ref TContainer)

    Implement this method to accept visitation for a property bag and container.

    Declaration
    void IPropertyBagVisitor.Visit<TContainer>(IPropertyBag<TContainer> properties, ref TContainer container)
    Parameters
    Type Name Description
    IPropertyBag<TContainer> properties

    The properties of the container.

    TContainer container

    The container being visited.

    Type Parameters
    Name Description
    TContainer

    The container type.

    Implements
    IPropertyBagVisitor.Visit<TContainer>(IPropertyBag<TContainer>, ref TContainer)
    Remarks

    This method is invoked by Accept(IPropertyBagVisitor, ref TContainer).

    IPropertyVisitor.Visit<TContainer, TValue>(Property<TContainer, TValue>, ref TContainer)

    Implement this method to accept visitation for a specific property.

    Declaration
    void IPropertyVisitor.Visit<TContainer, TValue>(Property<TContainer, TValue> property, ref TContainer container)
    Parameters
    Type Name Description
    Property<TContainer, TValue> property

    The property being visited.

    TContainer container

    The container being visited.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TValue

    The value type.

    Implements
    IPropertyVisitor.Visit<TContainer, TValue>(Property<TContainer, TValue>, ref TContainer)
    Remarks

    This method is invoked by IPropertyAccept<TContainer>

    ISetPropertyVisitor.Visit<TContainer, TSet, TValue>(Property<TContainer, TSet>, ref TContainer, ref TSet)

    Implement this method to accept visitation for a specialized set property.

    Declaration
    void ISetPropertyVisitor.Visit<TContainer, TSet, TElement>(Property<TContainer, TSet> property, ref TContainer container, ref TSet set)
        where TSet : ISet<TElement>
    Parameters
    Type Name Description
    Property<TContainer, TSet> property

    The property being visited.

    TContainer container

    The container being visited.

    TSet set

    The hash set value.

    Type Parameters
    Name Description
    TContainer

    The container type.

    TSet

    The set value type.

    TElement
    Implements
    ISetPropertyVisitor.Visit<TContainer, TSet, TValue>(Property<TContainer, TSet>, ref TContainer, ref TSet)
    Remarks

    This method is invoked by ISetPropertyAccept<TSet>

    Back to top
    Terms of use
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023