package io.ebeaninternal.server.deploy.visitor;

import io.ebeaninternal.server.deploy.BeanProperty;
import io.ebeaninternal.server.deploy.BeanPropertyAssocMany;
import io.ebeaninternal.server.deploy.BeanPropertyAssocOne;

Used to visit a BeanProperty given the type of bean property it is.
/** * Used to visit a BeanProperty given the type of bean property it is. */
public interface BeanPropertyVisitor {
Completed visiting all the properties on the bean.
/** * Completed visiting all the properties on the bean. */
void visitEnd();
Visit a OneToMany or ManyToMany property.
/** * Visit a OneToMany or ManyToMany property. */
void visitMany(BeanPropertyAssocMany<?> p);
Visit the imported side of a OneToOne property.
/** * Visit the imported side of a OneToOne property. */
void visitOneImported(BeanPropertyAssocOne<?> p);
Visit the exported side of a OneToOne property.
/** * Visit the exported side of a OneToOne property. */
void visitOneExported(BeanPropertyAssocOne<?> p);
Visit an embedded property.
/** * Visit an embedded property. */
void visitEmbedded(BeanPropertyAssocOne<?> p);
Visit the scalar property of an embedded bean.
/** * Visit the scalar property of an embedded bean. */
void visitEmbeddedScalar(BeanProperty p, BeanPropertyAssocOne<?> embedded);
Visit a scalar property.
/** * Visit a scalar property. */
void visitScalar(BeanProperty p); }