com.google.web.bindery.autobean.shared

## Class AutoBeanVisitor

- java.lang.Object
- - com.google.web.bindery.autobean.shared.AutoBeanVisitor

-     public class AutoBeanVisitor
      extends java.lang.Object

  Allows traversal of an AutoBean object graph.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static interface` | `AutoBeanVisitor.CollectionPropertyContext` A PropertyContext that describes the parameterization of the Collection being visited.
    `static interface` | `AutoBeanVisitor.Context` Reserved for future expansion to avoid API breaks.
    `static interface` | `AutoBeanVisitor.MapPropertyContext` A PropertyContext that describes the parameterization of the Map being visited.
    `static class` | `AutoBeanVisitor.ParameterizationVisitor` The ParameterizationVisitor provides access to more complete type information than a simple class literal can provide.
    `static interface` | `AutoBeanVisitor.PropertyContext` Allows properties to be reset.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AutoBeanVisitor()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `endVisit(AutoBean<?> bean, AutoBeanVisitor.Context ctx)` Called after visiting an `AutoBean`.
    `void` | `endVisitCollectionProperty(java.lang.String propertyName, AutoBean<java.util.Collection<?>> value, AutoBeanVisitor.CollectionPropertyContext ctx)` Called after visiting a reference property.
    `void` | `endVisitMapProperty(java.lang.String propertyName, AutoBean<java.util.Map<?,?>> value, AutoBeanVisitor.MapPropertyContext ctx)` Called after visiting a reference property.
    `void` | `endVisitReferenceProperty(java.lang.String propertyName, AutoBean<?> value, AutoBeanVisitor.PropertyContext ctx)` Called after visiting a reference property.
    `void` | `endVisitValueProperty(java.lang.String propertyName, java.lang.Object value, AutoBeanVisitor.PropertyContext ctx)` Called after visiting a value property.
    `boolean` | `visit(AutoBean<?> bean, AutoBeanVisitor.Context ctx)` Called when visiting an `AutoBean`.
    `boolean` | `visitCollectionProperty(java.lang.String propertyName, AutoBean<java.util.Collection<?>> value, AutoBeanVisitor.CollectionPropertyContext ctx)` Called every time, but `visit(AutoBean, Context)` will be called for the value only the first time it is encountered.
    `boolean` | `visitMapProperty(java.lang.String propertyName, AutoBean<java.util.Map<?,?>> value, AutoBeanVisitor.MapPropertyContext ctx)` Called every time, but `visit(AutoBean, Context)` will be called for the value only the first time it is encountered.
    `boolean` | `visitReferenceProperty(java.lang.String propertyName, AutoBean<?> value, AutoBeanVisitor.PropertyContext ctx)` Called every time, but `visit(AutoBean, Context)` will be called for the value only the first time it is encountered.
    `boolean` | `visitValueProperty(java.lang.String propertyName, java.lang.Object value, AutoBeanVisitor.PropertyContext ctx)` TODO: document.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AutoBeanVisitor

          public AutoBeanVisitor()

  - ### Method Detail

    - #### endVisit

          public void endVisit(AutoBean<?> bean,
                      AutoBeanVisitor.Context ctx)

      Called after visiting an `AutoBean`.
      Parameters:
        `bean` - an `AutoBean`
        `ctx` - a Context

    - #### endVisitCollectionProperty

          public void endVisitCollectionProperty(java.lang.String propertyName,
                                        AutoBean<java.util.Collection<?>> value,
                                        AutoBeanVisitor.CollectionPropertyContext ctx)

      Called after visiting a reference property.
      Parameters:
        `propertyName` - the property name, as a String
        `value` - the property value
        `ctx` - a PropertyContext

    - #### endVisitMapProperty

          public void endVisitMapProperty(java.lang.String propertyName,
                                 AutoBean<java.util.Map<?,?>> value,
                                 AutoBeanVisitor.MapPropertyContext ctx)

      Called after visiting a reference property.
      Parameters:
        `propertyName` - the property name, as a String
        `value` - the property value
        `ctx` - a PropertyContext

    - #### endVisitReferenceProperty

          public void endVisitReferenceProperty(java.lang.String propertyName,
                                       AutoBean<?> value,
                                       AutoBeanVisitor.PropertyContext ctx)

      Called after visiting a reference property.
      Parameters:
        `propertyName` - the property name, as a String
        `value` - the property value
        `ctx` - a PropertyContext

    - #### endVisitValueProperty

          public void endVisitValueProperty(java.lang.String propertyName,
                                   java.lang.Object value,
                                   AutoBeanVisitor.PropertyContext ctx)

      Called after visiting a value property.
      Parameters:
        `propertyName` - the property name, as a String
        `value` - the property value
        `ctx` - a PropertyContext

    - #### visit

          public boolean visit(AutoBean<?> bean,
                      AutoBeanVisitor.Context ctx)

      Called when visiting an `AutoBean`.
      Parameters:
        `bean` - an `AutoBean`
        `ctx` - a Context

    - #### visitCollectionProperty

          public boolean visitCollectionProperty(java.lang.String propertyName,
                                        AutoBean<java.util.Collection<?>> value,
                                        AutoBeanVisitor.CollectionPropertyContext ctx)

      Called every time, but `visit(AutoBean, Context)` will be called for the value only the first time it is encountered.
      Parameters:
        `propertyName` - the property name, as a String
        `value` - the property value
        `ctx` - a PropertyContext

    - #### visitMapProperty

          public boolean visitMapProperty(java.lang.String propertyName,
                                 AutoBean<java.util.Map<?,?>> value,
                                 AutoBeanVisitor.MapPropertyContext ctx)

      Called every time, but `visit(AutoBean, Context)` will be called for the value only the first time it is encountered.
      Parameters:
        `propertyName` - the property name, as a String
        `value` - the property value
        `ctx` - a PropertyContext

    - #### visitReferenceProperty

          public boolean visitReferenceProperty(java.lang.String propertyName,
                                       AutoBean<?> value,
                                       AutoBeanVisitor.PropertyContext ctx)

      Called every time, but `visit(AutoBean, Context)` will be called for the value only the first time it is encountered.
      Parameters:
        `propertyName` - the property name, as a String
        `value` - the property value
        `ctx` - a PropertyContext

    - #### visitValueProperty

          public boolean visitValueProperty(java.lang.String propertyName,
                                   java.lang.Object value,
                                   AutoBeanVisitor.PropertyContext ctx)

      TODO: document.
      Parameters:
        `propertyName` - the property name, as a String
        `value` - the property value
        `ctx` - a PropertyContext