This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new 4a724b8  Refactor cgen UI code
4a724b8 is described below

commit 4a724b8ca821cdd1e9facad1f7b09542913b2679
Author: Nikita Timofeev <stari...@gmail.com>
AuthorDate: Tue Feb 25 10:45:09 2020 +0300

    Refactor cgen UI code
---
 ...ntroller.java => ClassGenerationValidator.java} | 136 +++----------
 .../modeler/editor/cgen/ClassesTabController.java  |  72 ++++++-
 .../editor/cgen/CodeGeneratorController.java       |  91 ++-------
 .../modeler/editor/cgen/GeneratorController.java   | 220 ---------------------
 4 files changed, 113 insertions(+), 406 deletions(-)

diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassGenerationValidator.java
similarity index 70%
copy from 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
copy to 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassGenerationValidator.java
index ba856cb..05b2c15 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassGenerationValidator.java
@@ -16,87 +16,39 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-
 package org.apache.cayenne.modeler.editor.cgen;
 
-import org.apache.cayenne.gen.CgenConfiguration;
+import java.util.List;
+
 import org.apache.cayenne.map.Embeddable;
 import org.apache.cayenne.map.EmbeddableAttribute;
 import org.apache.cayenne.map.EmbeddedAttribute;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.pref.FSPath;
-import org.apache.cayenne.modeler.util.CayenneController;
 import org.apache.cayenne.modeler.util.CodeValidationUtil;
-import org.apache.cayenne.modeler.util.TextAdapter;
-import org.apache.cayenne.swing.BindingBuilder;
-import org.apache.cayenne.util.Util;
 import org.apache.cayenne.validation.BeanValidationFailure;
 import org.apache.cayenne.validation.SimpleValidationFailure;
 import org.apache.cayenne.validation.ValidationFailure;
 import org.apache.cayenne.validation.ValidationResult;
 
-import javax.swing.JButton;
-import javax.swing.JFileChooser;
-import java.io.File;
-import java.util.function.Predicate;
-
 /**
- * @since 4.1
- * A mode-specific part of the code generation dialog.
+ * Validator that checks classes and embeddables for code-generation specific 
problems.
+ *
+ * @since 4.2
  */
-public abstract class GeneratorController extends CayenneController {
-
-    protected CgenConfiguration cgenConfiguration;
-
-    public GeneratorController(CodeGeneratorController parent) {
-        super(parent);
-
-        createView();
-        initBindings(new BindingBuilder(getApplication().getBindingFactory(), 
this));
-    }
-
-    protected void initBindings(BindingBuilder bindingBuilder) {
-        JButton outputSelect = getView().getSelectOutputFolder();
-        bindingBuilder.bindToAction(outputSelect, 
"selectOutputFolderAction()");
-    }
-
-    protected CodeGeneratorController getParentController() {
-        return (CodeGeneratorController) getParent();
-    }
-
-    protected abstract void createView();
-
-    @Override
-    public abstract GeneratorControllerPanel getView();
-
-    protected void initForm(CgenConfiguration cgenConfiguration) {
-        this.cgenConfiguration = cgenConfiguration;
-        
getView().getOutputFolder().setText(cgenConfiguration.buildPath().toString());
-        
if(cgenConfiguration.getArtifactsGenerationMode().equalsIgnoreCase("all")) {
-            
getParentController().setCurrentClass(cgenConfiguration.getDataMap());
-            getParentController().setSelected(true);
-        }
-    }
-
-    public abstract void updateConfiguration(CgenConfiguration 
cgenConfiguration);
-
-    public void validateEmbeddable(ValidationResult validationBuffer, 
Embeddable embeddable) {
-        ValidationFailure embeddableFailure = validateEmbeddable(embeddable);
-        if (embeddableFailure != null) {
-            validationBuffer.addFailure(embeddableFailure);
-            return;
-        }
-
-        for (EmbeddableAttribute attribute : embeddable.getAttributes()) {
-            ValidationFailure failure = validateEmbeddableAttribute(attribute);
-            if (failure != null) {
-                validationBuffer.addFailure(failure);
-                return;
+class ClassGenerationValidator {
+
+    ValidationResult getValidationResult(List<Object> classes) {
+        ValidationResult validationResult = new ValidationResult();
+        for (Object classObj : classes) {
+            if (classObj instanceof ObjEntity) {
+                validateEntity(validationResult, (ObjEntity) classObj, false);
+            } else if (classObj instanceof Embeddable) {
+                validateEmbeddable(validationResult, (Embeddable) classObj);
             }
         }
+        return validationResult;
     }
 
     private ValidationFailure validateEmbeddableAttribute(EmbeddableAttribute 
attribute) {
@@ -138,7 +90,7 @@ public abstract class GeneratorController extends 
CayenneController {
         return BeanValidationFailure.validateJavaClassName(name, "className", 
embeddable.getClassName());
     }
 
-    public void validateEntity(ValidationResult validationBuffer, ObjEntity 
entity, boolean clientValidation) {
+    private void validateEntity(ValidationResult validationBuffer, ObjEntity 
entity, boolean clientValidation) {
 
         ValidationFailure entityFailure = validateEntity(clientValidation ? 
entity.getClientEntity() : entity);
         if (entityFailure != null) {
@@ -274,52 +226,20 @@ public abstract class GeneratorController extends 
CayenneController {
         return null;
     }
 
-    /**
-     * Returns a predicate for default entity selection in a given mode.
-     */
-    public Predicate<Object> getDefaultClassFilter() {
-        return object -> {
-            if (object instanceof ObjEntity) {
-                return getParentController().getProblem(((ObjEntity) 
object).getName()) == null;
-            }
-
-            if (object instanceof Embeddable) {
-                return getParentController().getProblem(((Embeddable) 
object).getClassName()) == null;
-            }
-
-            return false;
-        };
-    }
-
-    /**
-     * An action method that pops up a file chooser dialog to pick the
-     * generation directory.
-     */
-    public void selectOutputFolderAction() {
-
-        TextAdapter outputFolder = getView().getOutputFolder();
-        String currentDir = outputFolder.getComponent().getText();
-
-        JFileChooser chooser = new JFileChooser();
-        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
-        chooser.setDialogType(JFileChooser.OPEN_DIALOG);
-
-        // guess start directory
-        if (!Util.isEmptyString(currentDir)) {
-            chooser.setCurrentDirectory(new File(currentDir));
-        } else {
-            FSPath lastDir = 
Application.getInstance().getFrameController().getLastDirectory();
-            lastDir.updateChooser(chooser);
+    private void validateEmbeddable(ValidationResult validationBuffer, 
Embeddable embeddable) {
+        ValidationFailure embeddableFailure = validateEmbeddable(embeddable);
+        if (embeddableFailure != null) {
+            validationBuffer.addFailure(embeddableFailure);
+            return;
         }
 
-        int result = chooser.showOpenDialog(getView());
-        if (result == JFileChooser.APPROVE_OPTION) {
-            File selected = chooser.getSelectedFile();
-
-            // update model
-            String path = selected.getAbsolutePath();
-            getView().getOutputFolder().setText(path);
-            getView().getOutputFolder().updateModel();
+        for (EmbeddableAttribute attribute : embeddable.getAttributes()) {
+            ValidationFailure failure = validateEmbeddableAttribute(attribute);
+            if (failure != null) {
+                validationBuffer.addFailure(failure);
+                return;
+            }
         }
     }
+
 }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabController.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabController.java
index 0ea0850..6141a7a 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabController.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabController.java
@@ -19,24 +19,36 @@
 
 package org.apache.cayenne.modeler.editor.cgen;
 
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.Embeddable;
+import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.modeler.util.CayenneController;
+import org.apache.cayenne.modeler.util.CellRenderers;
+import org.apache.cayenne.modeler.util.ModelerUtil;
 import org.apache.cayenne.swing.BindingBuilder;
 import org.apache.cayenne.swing.ImageRendererColumn;
 import org.apache.cayenne.swing.ObjectBinding;
 import org.apache.cayenne.swing.TableBindingBuilder;
+import org.apache.cayenne.validation.ValidationFailure;
+import org.apache.cayenne.validation.ValidationResult;
 
+import javax.swing.Icon;
 import javax.swing.JLabel;
 import javax.swing.table.TableColumnModel;
 import java.awt.Component;
+import java.util.List;
 
 /**
  * @since 4.1
  */
 public class ClassesTabController extends CayenneController {
 
+    private static final Icon ERROR_ICON = 
ModelerUtil.buildIcon("icon-error.png");
+
     protected ClassesTabPanel view;
     protected ObjectBinding tableBinding;
 
+    private ValidationResult lastValidationResult;
     private BindingBuilder builder;
 
     public ClassesTabController(CodeGeneratorController parent) {
@@ -70,16 +82,17 @@ public class ClassesTabController extends CayenneController 
{
                 Boolean.class,
                 true,
                 Boolean.TRUE);
+
         tableBuilder.addColumn(
                 "Class",
-                "parent.getItemName(#item)",
+                "getItemName(#item)",
                 JLabel.class,
                 false,
                 "XXXXXXXXXXXXXXXXXXXXXXXXXX");
 
         tableBuilder.addColumn(
                 "",
-                "parent.getProblem(#item)",
+                "getProblem(#item)",
                 String.class,
                 false,
                 "XX");
@@ -129,4 +142,59 @@ public class ClassesTabController extends 
CayenneController {
             }
         }
     }
+
+    public void validate(List<Object> classes) {
+        ClassGenerationValidator validator = new ClassGenerationValidator();
+        this.lastValidationResult = validator.getValidationResult(classes);
+    }
+
+    /**
+     * Returns the first encountered validation problem for an antity matching 
the name or
+     * null if the entity is valid or the entity is not present.
+     */
+    public JLabel getProblem(Object obj) {
+        String name = null;
+        if (obj instanceof ObjEntity) {
+            name = ((ObjEntity) obj).getName();
+        } else if (obj instanceof Embeddable) {
+            name = ((Embeddable) obj).getClassName();
+        }
+
+        ValidationFailure validationFailure = null;
+        if (lastValidationResult != null) {
+            List<ValidationFailure> failures = 
lastValidationResult.getFailures(name);
+            if (!failures.isEmpty()) {
+                validationFailure = failures.get(0);
+            }
+        }
+
+        JLabel labelIcon = new JLabel();
+        labelIcon.setVisible(true);
+        if(validationFailure != null) {
+            labelIcon.setIcon(ERROR_ICON);
+            labelIcon.setToolTipText(validationFailure.getDescription());
+        }
+        return labelIcon;
+    }
+
+    public JLabel getItemName(Object obj) {
+        String className;
+        Icon icon;
+        if (obj instanceof Embeddable) {
+            className = ((Embeddable) obj).getClassName();
+            icon = CellRenderers.iconForObject(new Embeddable());
+        } else if(obj instanceof ObjEntity) {
+            className = ((ObjEntity) obj).getName();
+            icon = CellRenderers.iconForObject(new ObjEntity());
+        } else {
+            className = ((DataMap) obj).getName();
+            icon = CellRenderers.iconForObject(new DataMap());
+        }
+        JLabel labelIcon = new JLabel();
+        labelIcon.setIcon(icon);
+        labelIcon.setVisible(true);
+        labelIcon.setText(className);
+        return labelIcon;
+    }
+
 }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
index de1a276..1c863f0 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
@@ -19,8 +19,6 @@
 
 package org.apache.cayenne.modeler.editor.cgen;
 
-import javax.swing.Icon;
-import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -56,12 +54,9 @@ import org.apache.cayenne.modeler.dialog.ErrorDebugDialog;
 import org.apache.cayenne.modeler.dialog.pref.GeneralPreferences;
 import org.apache.cayenne.modeler.editor.DbImportController;
 import org.apache.cayenne.modeler.util.CayenneController;
-import org.apache.cayenne.modeler.util.CellRenderers;
 import org.apache.cayenne.modeler.util.ModelerUtil;
 import org.apache.cayenne.swing.BindingBuilder;
 import org.apache.cayenne.tools.CayenneToolsModuleProvider;
-import org.apache.cayenne.validation.ValidationFailure;
-import org.apache.cayenne.validation.ValidationResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -70,15 +65,11 @@ import org.slf4j.LoggerFactory;
  * A controller for the class generator dialog.
  */
 public class CodeGeneratorController extends CayenneController implements 
ObjEntityListener, EmbeddableListener, DataMapListener {
-    /**
-     * Logger to print stack traces
-     */
     private static final Logger LOGGER = 
LoggerFactory.getLogger(ErrorDebugDialog.class);
-    private static final Icon ERROR_ICON = 
ModelerUtil.buildIcon("icon-error.png");
+
     public static final String SELECTED_PROPERTY = "selected";
 
     protected ProjectController projectController;
-    protected ValidationResult lastValidationResult;
 
     protected List<Object> classes;
     protected SelectionModel selectionModel;
@@ -123,7 +114,7 @@ public class CodeGeneratorController extends 
CayenneController implements ObjEnt
         generatorSelector.setSelectedController(modeController);
         classesSelector.startup();
         initFromModel = false;
-        validate(modeController);
+        classesSelector.validate(classes);
     }
 
     private boolean isDefaultConfig(CgenConfiguration cgenConfiguration) {
@@ -162,10 +153,21 @@ public class CodeGeneratorController extends 
CayenneController implements ObjEnt
 
     public void generatorSelectedAction() {
         GeneratorController controller = 
generatorSelector.getGeneratorController();
-        validate(controller);
+        classesSelector.validate(classes);
+
+        Predicate<Object> defaultPredicate = object -> {
+            if (object instanceof ObjEntity) {
+                return classesSelector.getProblem(((ObjEntity) 
object).getName()) == null;
+            }
+
+            if (object instanceof Embeddable) {
+                return classesSelector.getProblem(((Embeddable) 
object).getClassName()) == null;
+            }
+            return false;
+        };
 
         Predicate<Object> predicate = controller != null
-                ? controller.getDefaultClassFilter()
+                ? defaultPredicate
                 : o -> false;
 
         updateSelection(predicate);
@@ -275,20 +277,6 @@ public class CodeGeneratorController extends 
CayenneController implements ObjEnt
         return classes;
     }
 
-    public void validate(GeneratorController validator) {
-        ValidationResult validationResult = new ValidationResult();
-        if (validator != null) {
-            for (Object classObj : classes) {
-                if (classObj instanceof ObjEntity) {
-                    validator.validateEntity(validationResult, (ObjEntity) 
classObj, false);
-                } else if (classObj instanceof Embeddable) {
-                    validator.validateEmbeddable(validationResult, 
(Embeddable) classObj);
-                }
-            }
-        }
-        this.lastValidationResult = validationResult;
-    }
-
     public boolean updateSelection(Predicate<Object> predicate) {
         boolean modified = selectionModel.updateSelection(predicate, classes);
 
@@ -329,55 +317,6 @@ public class CodeGeneratorController extends 
CayenneController implements ObjEnt
         }
     }
 
-    /**
-     * Returns the first encountered validation problem for an antity matching 
the name or
-     * null if the entity is valid or the entity is not present.
-     */
-    public JLabel getProblem(Object obj) {
-        String name = null;
-        if (obj instanceof ObjEntity) {
-            name = ((ObjEntity) obj).getName();
-        } else if (obj instanceof Embeddable) {
-            name = ((Embeddable) obj).getClassName();
-        }
-
-        ValidationFailure validationFailure = null;
-        if (lastValidationResult != null) {
-            List<ValidationFailure> failures = 
lastValidationResult.getFailures(name);
-            if (!failures.isEmpty()) {
-                validationFailure = failures.get(0);
-            }
-        }
-
-        JLabel labelIcon = new JLabel();
-        labelIcon.setVisible(true);
-        if(validationFailure != null) {
-            labelIcon.setIcon(ERROR_ICON);
-            labelIcon.setToolTipText(validationFailure.getDescription());
-        }
-        return labelIcon;
-    }
-
-    public JLabel getItemName(Object obj) {
-        String className;
-        Icon icon;
-        if (obj instanceof Embeddable) {
-            className = ((Embeddable) obj).getClassName();
-            icon = CellRenderers.iconForObject(new Embeddable());
-        } else if(obj instanceof ObjEntity) {
-            className = ((ObjEntity) obj).getName();
-            icon = CellRenderers.iconForObject(new ObjEntity());
-        } else {
-            className = ((DataMap) obj).getName();
-            icon = CellRenderers.iconForObject(new DataMap());
-        }
-        JLabel labelIcon = new JLabel();
-        labelIcon.setIcon(icon);
-        labelIcon.setVisible(true);
-        labelIcon.setText(className);
-        return labelIcon;
-    }
-
     public Object getCurrentClass() {
         return currentClass;
     }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
index ba856cb..545bee0 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorController.java
@@ -20,28 +20,16 @@
 package org.apache.cayenne.modeler.editor.cgen;
 
 import org.apache.cayenne.gen.CgenConfiguration;
-import org.apache.cayenne.map.Embeddable;
-import org.apache.cayenne.map.EmbeddableAttribute;
-import org.apache.cayenne.map.EmbeddedAttribute;
-import org.apache.cayenne.map.ObjAttribute;
-import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.map.ObjRelationship;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.pref.FSPath;
 import org.apache.cayenne.modeler.util.CayenneController;
-import org.apache.cayenne.modeler.util.CodeValidationUtil;
 import org.apache.cayenne.modeler.util.TextAdapter;
 import org.apache.cayenne.swing.BindingBuilder;
 import org.apache.cayenne.util.Util;
-import org.apache.cayenne.validation.BeanValidationFailure;
-import org.apache.cayenne.validation.SimpleValidationFailure;
-import org.apache.cayenne.validation.ValidationFailure;
-import org.apache.cayenne.validation.ValidationResult;
 
 import javax.swing.JButton;
 import javax.swing.JFileChooser;
 import java.io.File;
-import java.util.function.Predicate;
 
 /**
  * @since 4.1
@@ -83,214 +71,6 @@ public abstract class GeneratorController extends 
CayenneController {
 
     public abstract void updateConfiguration(CgenConfiguration 
cgenConfiguration);
 
-    public void validateEmbeddable(ValidationResult validationBuffer, 
Embeddable embeddable) {
-        ValidationFailure embeddableFailure = validateEmbeddable(embeddable);
-        if (embeddableFailure != null) {
-            validationBuffer.addFailure(embeddableFailure);
-            return;
-        }
-
-        for (EmbeddableAttribute attribute : embeddable.getAttributes()) {
-            ValidationFailure failure = validateEmbeddableAttribute(attribute);
-            if (failure != null) {
-                validationBuffer.addFailure(failure);
-                return;
-            }
-        }
-    }
-
-    private ValidationFailure validateEmbeddableAttribute(EmbeddableAttribute 
attribute) {
-        return validateAttribute(attribute.getEmbeddable().getClassName(), 
attribute.getName(), attribute.getType());
-    }
-
-    private ValidationFailure validateAttribute(String objectName, String 
attributeName, String attributeType) {
-        ValidationFailure emptyName = 
BeanValidationFailure.validateNotEmpty(objectName, "attribute.name",
-                attributeName);
-        if (emptyName != null) {
-            return emptyName;
-        }
-
-        ValidationFailure badName = 
CodeValidationUtil.validateJavaIdentifier(objectName, "attribute.name",
-                attributeName);
-        if (badName != null) {
-            return badName;
-        }
-
-        ValidationFailure emptyType = 
BeanValidationFailure.validateNotEmpty(objectName, "attribute.type",
-                attributeType);
-        if (emptyType != null) {
-            return emptyType;
-        }
-
-        return BeanValidationFailure.validateJavaClassName(objectName, 
"attribute.type", attributeType);
-    }
-
-    private ValidationFailure validateEmbeddable(Embeddable embeddable) {
-
-        String name = embeddable.getClassName();
-
-        ValidationFailure emptyClass = 
BeanValidationFailure.validateNotEmpty(name, "className",
-                embeddable.getClassName());
-        if (emptyClass != null) {
-            return emptyClass;
-        }
-
-        return BeanValidationFailure.validateJavaClassName(name, "className", 
embeddable.getClassName());
-    }
-
-    public void validateEntity(ValidationResult validationBuffer, ObjEntity 
entity, boolean clientValidation) {
-
-        ValidationFailure entityFailure = validateEntity(clientValidation ? 
entity.getClientEntity() : entity);
-        if (entityFailure != null) {
-            validationBuffer.addFailure(entityFailure);
-            return;
-        }
-
-        for (ObjAttribute attribute : entity.getAttributes()) {
-            if (attribute instanceof EmbeddedAttribute) {
-                EmbeddedAttribute embeddedAttribute = (EmbeddedAttribute) 
attribute;
-                for (ObjAttribute subAttribute : 
embeddedAttribute.getAttributes()) {
-                    ValidationFailure failure = 
validateEmbeddedAttribute(subAttribute);
-                    if (failure != null) {
-                        validationBuffer.addFailure(failure);
-                        return;
-                    }
-                }
-            } else {
-
-                ValidationFailure failure = validateAttribute(attribute);
-                if (failure != null) {
-                    validationBuffer.addFailure(failure);
-                    return;
-                }
-            }
-        }
-
-        for (ObjRelationship rel : entity.getRelationships()) {
-            ValidationFailure failure = validateRelationship(rel, 
clientValidation);
-            if (failure != null) {
-                validationBuffer.addFailure(failure);
-                return;
-            }
-        }
-    }
-
-    private ValidationFailure validateEntity(ObjEntity entity) {
-
-        String name = entity.getName();
-
-        if (entity.isGeneric()) {
-            return new SimpleValidationFailure(name, "Generic class");
-        }
-
-        ValidationFailure emptyClass = 
BeanValidationFailure.validateNotEmpty(name, "className", 
entity.getClassName());
-        if (emptyClass != null) {
-            return emptyClass;
-        }
-
-        ValidationFailure badClass = 
BeanValidationFailure.validateJavaClassName(name, "className",
-                entity.getClassName());
-        if (badClass != null) {
-            return badClass;
-        }
-
-        if (entity.getSuperClassName() != null) {
-            return BeanValidationFailure.validateJavaClassName(name, 
"superClassName", entity.getSuperClassName());
-        }
-
-        return null;
-    }
-
-    private ValidationFailure validateAttribute(ObjAttribute attribute) {
-        return validateAttribute(attribute.getEntity().getName(), 
attribute.getName(), attribute.getType());
-    }
-
-    private ValidationFailure validateEmbeddedAttribute(ObjAttribute 
attribute) {
-
-        String name = attribute.getEntity().getName();
-
-        // validate embeddedAttribute and attribute names
-        // embeddedAttribute returned attibute as
-        // [name_embeddedAttribute].[name_attribute]
-        String[] attributes = attribute.getName().split("\\.");
-        String nameEmbeddedAttribute = attributes[0];
-        int beginIndex = attributes[0].length();
-        String attr = attribute.getName().substring(beginIndex + 1);
-
-        ValidationFailure emptyEmbeddedName = 
BeanValidationFailure.validateNotEmpty(name, "attribute.name",
-                nameEmbeddedAttribute);
-        if (emptyEmbeddedName != null) {
-            return emptyEmbeddedName;
-        }
-
-        ValidationFailure badEmbeddedName = 
CodeValidationUtil.validateJavaIdentifier(name, "attribute.name",
-                nameEmbeddedAttribute);
-        if (badEmbeddedName != null) {
-            return badEmbeddedName;
-        }
-
-        return validateAttribute(name, attr, attribute.getType());
-    }
-
-    private ValidationFailure validateRelationship(ObjRelationship 
relationship, boolean clientValidation) {
-
-        String name = relationship.getSourceEntity().getName();
-
-        ValidationFailure emptyName = 
BeanValidationFailure.validateNotEmpty(name, "relationship.name",
-                relationship.getName());
-        if (emptyName != null) {
-            return emptyName;
-        }
-
-        ValidationFailure badName = 
CodeValidationUtil.validateJavaIdentifier(name, "relationship.name",
-                relationship.getName());
-        if (badName != null) {
-            return badName;
-        }
-
-        if (!relationship.isToMany()) {
-
-            ObjEntity targetEntity = relationship.getTargetEntity();
-
-            if (clientValidation && targetEntity != null) {
-                targetEntity = targetEntity.getClientEntity();
-            }
-
-            if (targetEntity == null) {
-
-                return new BeanValidationFailure(name, 
"relationship.targetEntity", "No target entity");
-            } else if (!targetEntity.isGeneric()) {
-                ValidationFailure emptyClass = 
BeanValidationFailure.validateNotEmpty(name,
-                        "relationship.targetEntity.className", 
targetEntity.getClassName());
-                if (emptyClass != null) {
-                    return emptyClass;
-                }
-
-                return BeanValidationFailure.validateJavaClassName(name, 
"relationship.targetEntity.className",
-                        targetEntity.getClassName());
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Returns a predicate for default entity selection in a given mode.
-     */
-    public Predicate<Object> getDefaultClassFilter() {
-        return object -> {
-            if (object instanceof ObjEntity) {
-                return getParentController().getProblem(((ObjEntity) 
object).getName()) == null;
-            }
-
-            if (object instanceof Embeddable) {
-                return getParentController().getProblem(((Embeddable) 
object).getClassName()) == null;
-            }
-
-            return false;
-        };
-    }
-
     /**
      * An action method that pops up a file chooser dialog to pick the
      * generation directory.

Reply via email to