From c44931ea25fadd6762da81943bef880a5914e967 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 20 Mar 2018 09:04:58 +1300 Subject: [PATCH] #115 - Supporting changes for Element collection support --- .../model/visitor/VisitAllUsing.java | 56 ++++++++++++------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/src/main/java/io/ebeaninternal/dbmigration/model/visitor/VisitAllUsing.java b/src/main/java/io/ebeaninternal/dbmigration/model/visitor/VisitAllUsing.java index e0d13ec04..2ce73123a 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/model/visitor/VisitAllUsing.java +++ b/src/main/java/io/ebeaninternal/dbmigration/model/visitor/VisitAllUsing.java @@ -16,6 +16,14 @@ import java.util.List; */ public class VisitAllUsing { + /** + * Visit a single Descriptor using the given visitor. + */ + public static void visitOne(BeanDescriptor descriptor, BeanPropertyVisitor visitor) { + + new VisitAllUsing().visitProperties(descriptor, visitor); + } + protected final BeanVisitor visitor; protected final List> descriptors; @@ -36,6 +44,11 @@ public class VisitAllUsing { this.descriptors = descriptors; } + private VisitAllUsing() { + this.visitor = null; + this.descriptors = null; + } + public void visitAllBeans() { for (BeanDescriptor desc : descriptors) { if (desc.isBaseTable()) { @@ -51,29 +64,32 @@ public class VisitAllUsing { BeanPropertyVisitor propertyVisitor = visitor.visitBean(desc); if (propertyVisitor != null) { - - BeanProperty idProp = desc.getIdProperty(); - if (idProp != null) { - visit(propertyVisitor, idProp); - } - - BeanPropertyAssocOne unidirectional = desc.getUnidirectional(); - if (unidirectional != null) { - visit(propertyVisitor, unidirectional); - } - - BeanProperty[] propertiesNonTransient = desc.propertiesNonTransient(); - for (BeanProperty p : propertiesNonTransient) { - if (p.isDDLColumn()) { - visit(propertyVisitor, p); - } - } - - visitInheritanceProperties(desc, propertyVisitor); - propertyVisitor.visitEnd(); + visitProperties(desc, propertyVisitor); } } + private void visitProperties(BeanDescriptor desc, BeanPropertyVisitor propertyVisitor) { + BeanProperty idProp = desc.getIdProperty(); + if (idProp != null) { + visit(propertyVisitor, idProp); + } + + BeanPropertyAssocOne unidirectional = desc.getUnidirectional(); + if (unidirectional != null) { + visit(propertyVisitor, unidirectional); + } + + BeanProperty[] propertiesNonTransient = desc.propertiesNonTransient(); + for (BeanProperty p : propertiesNonTransient) { + if (p.isDDLColumn()) { + visit(propertyVisitor, p); + } + } + + visitInheritanceProperties(desc, propertyVisitor); + propertyVisitor.visitEnd(); + } + /** * Visit the property. */