001package io.ebeaninternal.dbmigration.model.visitor;
002
003import io.ebeaninternal.dbmigration.model.build.ModelBuildPropertyVisitor;
004import io.ebeaninternal.server.deploy.BeanDescriptor;
005
006/**
007 * Visitor pattern for visiting a BeanDescriptor and potentially all its bean
008 * properties.
009 */
010public interface BeanVisitor {
011
012  /**
013   * Visit a BeanDescriptor and return a PropertyVisitor to use to visit each
014   * property on the entity bean (return null to skip visiting this bean).
015   */
016  ModelBuildPropertyVisitor visitBean(BeanDescriptor<?> descriptor);
017
018}