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.