You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ol...@apache.org on 2009/12/30 14:11:57 UTC
svn commit: r894609 -
/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/
Author: oltka
Date: Wed Dec 30 13:11:56 2009
New Revision: 894609
URL: http://svn.apache.org/viewvc?rev=894609&view=rev
Log:
CAY-1352 in "code generation" dialog add generation embeddables
Added:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
- copied, changed from r894432, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabController.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java
- copied, changed from r894432, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabPanel.java
Removed:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabController.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabPanel.java
Modified:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java (from r894432, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabController.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabController.java&r1=894432&r2=894609&rev=894609&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java Wed Dec 30 13:11:56 2009
@@ -28,17 +28,17 @@
import org.apache.commons.collections.Predicate;
import org.apache.commons.collections.PredicateUtils;
-public class EntitiesTabController extends CayenneController {
+public class ClassesTabController extends CayenneController {
public static final String GENERATE_PROPERTY = "generate";
- protected EntitiesTabPanel view;
+ protected ClassesTabPanel view;
protected ObjectBinding tableBinding;
- public EntitiesTabController(CodeGeneratorControllerBase parent) {
+ public ClassesTabController(CodeGeneratorControllerBase parent) {
super(parent);
- this.view = new EntitiesTabPanel();
+ this.view = new ClassesTabPanel();
initBindings();
}
@@ -62,25 +62,25 @@
tableBuilder.addColumn(
"",
- "parent.setCurrentEntity(#item), selected",
+ "parent.setCurrentClass(#item), selected",
Boolean.class,
true,
Boolean.TRUE);
tableBuilder.addColumn(
- "Entity",
- "#item.name",
+ "Class",
+ "parent.getItemName(#item)",
String.class,
false,
"XXXXXXXXXXXXXX");
tableBuilder.addColumn(
"Comments, Warnings",
- "parent.getProblem(#item.name)",
+ "parent.getProblem(#item)",
String.class,
false,
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
- this.tableBinding = tableBuilder.bindToTable(view.getTable(), "parent.entities");
+ this.tableBinding = tableBuilder.bindToTable(view.getTable(), "parent.classes");
}
public boolean isSelected() {
@@ -89,19 +89,19 @@
public void setSelected(boolean selected) {
getParentController().setSelected(selected);
- entitySelectedAction();
+ classSelectedAction();
}
/**
* A callback action that updates the state of Select All checkbox.
*/
- public void entitySelectedAction() {
- int selectedCount = getParentController().getSelectedEntitiesSize();
+ public void classSelectedAction() {
+ int selectedCount = getParentController().getSelectedEntitiesSize() + getParentController().getSelectedEmbeddablesSize() ;
if (selectedCount == 0) {
view.getCheckAll().setSelected(false);
}
- else if (selectedCount == getParentController().getEntities().size()) {
+ else if (selectedCount == getParentController().getClasses().size()) {
view.getCheckAll().setSelected(true);
}
}
Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java (from r894432, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabPanel.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabPanel.java&r1=894432&r2=894609&rev=894609&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/EntitiesTabPanel.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java Wed Dec 30 13:11:56 2009
@@ -34,29 +34,29 @@
/**
*/
-public class EntitiesTabPanel extends JPanel {
+public class ClassesTabPanel extends JPanel {
protected JTable table;
protected JCheckBox checkAll;
protected JLabel checkAllLabel;
- public EntitiesTabPanel() {
+ public ClassesTabPanel() {
this.table = new JTable();
// TODO: andrus 04/07/2006 - is there an easy way to stick that checkbox in the
// table header????
this.checkAll = new JCheckBox();
- this.checkAllLabel = new JLabel("Check All Entities");
+ this.checkAllLabel = new JLabel("Check All Classes");
checkAll.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
if (checkAll.isSelected()) {
- checkAllLabel.setText("Uncheck All Entities");
+ checkAllLabel.setText("Uncheck All Classess");
}
else {
- checkAllLabel.setText("Check All Entities");
+ checkAllLabel.setText("Check All Classes");
}
}
});
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java?rev=894609&r1=894608&r2=894609&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java Wed Dec 30 13:11:56 2009
@@ -45,13 +45,13 @@
protected CodeGeneratorDialog view;
- protected EntitiesTabController entitySelector;
+ protected ClassesTabController clessSelector;
protected GeneratorTabController generatorSelector;
public CodeGeneratorController(CayenneController parent, DataMap dataMap) {
super(parent, dataMap);
- this.entitySelector = new EntitiesTabController(this);
+ this.clessSelector = new ClassesTabController(this);
this.generatorSelector = new GeneratorTabController(this);
}
@@ -64,7 +64,7 @@
// show dialog even on empty DataMap, as custom generation may still take
// advantage of it
- view = new CodeGeneratorDialog(generatorSelector.getView(), entitySelector
+ view = new CodeGeneratorDialog(generatorSelector.getView(), clessSelector
.getView());
initBindings();
@@ -82,7 +82,7 @@
builder.bindToAction(view.getCancelButton(), "cancelAction()");
builder.bindToAction(view.getGenerateButton(), "generateAction()");
- builder.bindToAction(this, "entitySelectedAction()", SELECTED_PROPERTY);
+ builder.bindToAction(this, "classesSelectedAction()", SELECTED_PROPERTY);
builder.bindToAction(
generatorSelector,
"generatorSelectedAction()",
@@ -100,10 +100,10 @@
: PredicateUtils.falsePredicate();
updateSelection(predicate);
- entitySelector.entitySelectedAction();
+ clessSelector.classSelectedAction();
}
- public void entitySelectedAction() {
+ public void classesSelectedAction() {
int size = getSelectedEntitiesSize();
String label;
@@ -117,7 +117,21 @@
label = size + " entities selected";
}
- view.getEntityCount().setText(label);
+ label = label.concat("; ");
+
+ int sizeEmb = getSelectedEmbeddablesSize();
+
+ if (sizeEmb == 0) {
+ label = label + "No embeddables selected";
+ }
+ else if (sizeEmb == 1) {
+ label = label + "One embeddable selected";
+ }
+ else {
+ label =label + sizeEmb + " embeddables selected";
+ }
+
+ view.getClassesCount().setText(label);
}
public void cancelAction() {
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java?rev=894609&r1=894608&r2=894609&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java Wed Dec 30 13:11:56 2009
@@ -23,7 +23,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -48,17 +47,25 @@
protected ValidationResult validation;
- protected List<ObjEntity> entities;
+ protected List<Object> classes;
+
protected Set selectedEntities;
+ protected Set selectedEmbeddables;
- protected transient ObjEntity currentEntity;
+ protected transient Object currentClass;
public CodeGeneratorControllerBase(CayenneController parent, DataMap dataMap) {
super(parent);
this.dataMap = dataMap;
- this.entities = new ArrayList(dataMap.getObjEntities());
+ this.classes = new ArrayList(dataMap.getObjEntities());
+ classes.addAll(new ArrayList(dataMap.getEmbeddables()));
this.selectedEntities = new HashSet();
+ this.selectedEmbeddables = new HashSet();
+ }
+
+ public List<Object> getClasses() {
+ return classes;
}
public abstract Component getView();
@@ -68,9 +75,18 @@
ValidationResult validationBuffer = new ValidationResult();
if (validator != null) {
- for (ObjEntity entity : entities) {
- validator.validateEntity(validationBuffer, entity, false);
+ for (Object classObj : classes) {
+ if (classObj instanceof ObjEntity) {
+ validator.validateEntity(
+ validationBuffer,
+ (ObjEntity) classObj,
+ false);
+ }
+ else if (classObj instanceof Embeddable) {
+ validator.validateEmbeddable(validationBuffer, (Embeddable) classObj);
+ }
}
+
}
this.validation = validationBuffer;
@@ -80,18 +96,35 @@
boolean modified = false;
- for (ObjEntity entity : entities) {
- boolean select = predicate.evaluate(entity);
-
- if (select) {
- if (selectedEntities.add(entity.getName())) {
- modified = true;
- }
- } else {
- if (selectedEntities.remove(entity.getName())) {
- modified = true;
+ for (Object classObj : classes) {
+ boolean select = predicate.evaluate(classObj);
+ if (classObj instanceof ObjEntity) {
+
+ if (select) {
+ if (selectedEntities.add(((ObjEntity) classObj).getName())) {
+ modified = true;
+ }
+ }
+ else {
+ if (selectedEntities.remove(((ObjEntity) classObj).getName())) {
+ modified = true;
+ }
}
}
+ else if (classObj instanceof Embeddable) {
+ if (select) {
+ if (selectedEmbeddables.add(((Embeddable) classObj).getClassName())) {
+ modified = true;
+ }
+ }
+ else {
+ if (selectedEmbeddables
+ .remove(((Embeddable) classObj).getClassName())) {
+ modified = true;
+ }
+ }
+ }
+
}
if (modified) {
@@ -102,17 +135,26 @@
}
public Collection<Embeddable> getSelectedEmbeddables() {
- // TODO: andrus, 12/9/2007 - until Modeler filtering of embeddables is
- // implemented, show all embeddables we have
- return dataMap.getEmbeddables();
+
+ List<Embeddable> selected = new ArrayList<Embeddable>(selectedEmbeddables.size());
+
+ for (Object classObj : classes) {
+ if (classObj instanceof Embeddable
+ && selectedEmbeddables.contains(((Embeddable) classObj)
+ .getClassName())) {
+ selected.add((Embeddable) classObj);
+ }
+ }
+
+ return selected;
}
public List<ObjEntity> getSelectedEntities() {
List<ObjEntity> selected = new ArrayList<ObjEntity>(selectedEntities.size());
-
- for (ObjEntity entity : entities) {
- if (selectedEntities.contains(entity.getName())) {
- selected.add(entity);
+ for (Object classObj : classes) {
+ if (classObj instanceof ObjEntity
+ && selectedEntities.contains(((ObjEntity) classObj).getName())) {
+ selected.add(((ObjEntity) classObj));
}
}
@@ -123,21 +165,30 @@
return selectedEntities.size();
}
- public List getEntities() {
- return entities;
+ public int getSelectedEmbeddablesSize() {
+ return selectedEmbeddables.size();
}
/**
* 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 String getProblem(String entityName) {
+ public String getProblem(Object obj) {
+ String name = null;
+
+ if (obj instanceof ObjEntity) {
+ name = ((ObjEntity) obj).getName();
+ }
+ else if (obj instanceof Embeddable) {
+ name = ((Embeddable) obj).getClassName();
+ }
+
if (validation == null) {
return null;
}
- List failures = validation.getFailures(entityName);
+ List failures = validation.getFailures(name);
if (failures.isEmpty()) {
return null;
}
@@ -146,37 +197,65 @@
}
public boolean isSelected() {
- return currentEntity != null
- ? selectedEntities.contains(currentEntity.getName())
- : false;
+ if (currentClass instanceof ObjEntity) {
+ return currentClass != null ? selectedEntities
+ .contains(((ObjEntity) currentClass).getName()) : false;
+ }
+ if (currentClass instanceof Embeddable) {
+ return currentClass != null ? selectedEmbeddables
+ .contains(((Embeddable) currentClass).getClassName()) : false;
+ }
+ return false;
+
}
public void setSelected(boolean selectedFlag) {
- if (currentEntity == null) {
+ if (currentClass == null) {
return;
}
-
- if (selectedFlag) {
- if (selectedEntities.add(currentEntity.getName())) {
- firePropertyChange(SELECTED_PROPERTY, null, null);
+ if (currentClass instanceof ObjEntity) {
+ if (selectedFlag) {
+ if (selectedEntities.add(((ObjEntity) currentClass).getName())) {
+ firePropertyChange(SELECTED_PROPERTY, null, null);
+ }
+ }
+ else {
+ if (selectedEntities.remove(((ObjEntity) currentClass).getName())) {
+ firePropertyChange(SELECTED_PROPERTY, null, null);
+ }
}
}
- else {
- if (selectedEntities.remove(currentEntity.getName())) {
- firePropertyChange(SELECTED_PROPERTY, null, null);
+ if (currentClass instanceof Embeddable) {
+ if (selectedFlag) {
+ if (selectedEmbeddables.add(((Embeddable) currentClass).getClassName())) {
+ firePropertyChange(SELECTED_PROPERTY, null, null);
+ }
+ }
+ else {
+ if (selectedEmbeddables
+ .remove(((Embeddable) currentClass).getClassName())) {
+ firePropertyChange(SELECTED_PROPERTY, null, null);
+ }
}
}
}
- public ObjEntity getCurrentEntity() {
- return currentEntity;
+ public Object getCurrentClass() {
+ return currentClass;
}
- public void setCurrentEntity(ObjEntity currentEntity) {
- this.currentEntity = currentEntity;
+ public void setCurrentClass(Object currentClass) {
+ this.currentClass = currentClass;
}
public DataMap getDataMap() {
return dataMap;
}
+
+ public String getItemName(Object obj) {
+ if (obj instanceof Embeddable) {
+ return ((Embeddable) obj).getClassName();
+ }
+ return ((ObjEntity) obj).getName();
+ }
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java?rev=894609&r1=894608&r2=894609&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java Wed Dec 30 13:11:56 2009
@@ -42,7 +42,7 @@
protected JButton generateButton;
protected JButton cancelButton;
- protected JLabel entityCount;
+ protected JLabel classesCount;
public CodeGeneratorDialog(Component generatorPanel, Component entitySelectorPanel) {
super(Application.getFrame());
@@ -50,19 +50,19 @@
this.tabs = new JTabbedPane(SwingConstants.TOP);
this.generateButton = new JButton("Generate");
this.cancelButton = new JButton("Cancel");
- this.entityCount = new JLabel("No entities selected");
- entityCount.setFont(entityCount.getFont().deriveFont(10f));
+ this.classesCount = new JLabel("No classes selected");
+ classesCount.setFont(classesCount.getFont().deriveFont(10f));
// assemble
tabs.addTab("Code Generator", generatorPanel);
- tabs.addTab("Entities", entitySelectorPanel);
+ tabs.addTab("Classes", entitySelectorPanel);
JPanel messages = new JPanel(new BorderLayout());
- messages.add(entityCount, BorderLayout.WEST);
+ messages.add(classesCount, BorderLayout.WEST);
JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT));
- buttons.add(entityCount);
+ buttons.add(classesCount);
buttons.add(Box.createHorizontalStrut(50));
buttons.add(cancelButton);
buttons.add(generateButton);
@@ -83,7 +83,7 @@
return generateButton;
}
- public JLabel getEntityCount() {
- return entityCount;
+ public JLabel getClassesCount() {
+ return classesCount;
}
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java?rev=894609&r1=894608&r2=894609&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java Wed Dec 30 13:11:56 2009
@@ -32,6 +32,8 @@
import org.apache.cayenne.gen.ClassGenerationAction;
import org.apache.cayenne.gen.ArtifactsGenerationMode;
import org.apache.cayenne.map.Attribute;
+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;
@@ -88,7 +90,7 @@
outputFolder.setText(getOutputPath());
bindingBuilder.bindToAction(outputSelect, "selectOutputFolderAction()");
- bindingBuilder.bindToTextField(outputFolder,"outputPath");
+ bindingBuilder.bindToTextField(outputFolder, "outputPath");
}
protected CodeGeneratorControllerBase getParentController() {
@@ -115,19 +117,24 @@
// no destination folder
if (outputDir == null) {
- JOptionPane.showMessageDialog(this.getView(), "Select directory for source files.");
+ JOptionPane.showMessageDialog(
+ this.getView(),
+ "Select directory for source files.");
return null;
}
// no such folder
if (!outputDir.exists() && !outputDir.mkdirs()) {
- JOptionPane.showMessageDialog(this.getView(), "Can't create directory " + outputDir + ". Select a different one.");
+ JOptionPane.showMessageDialog(this.getView(), "Can't create directory "
+ + outputDir
+ + ". Select a different one.");
return null;
}
// not a directory
if (!outputDir.isDirectory()) {
- JOptionPane.showMessageDialog(this.getView(), outputDir + " is not a valid directory.");
+ JOptionPane.showMessageDialog(this.getView(), outputDir
+ + " is not a valid directory.");
return null;
}
@@ -175,6 +182,85 @@
return generator;
}
+ 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) {
+ String name = attribute.getEmbeddable().getClassName();
+
+ ValidationFailure emptyName = BeanValidationFailure.validateNotEmpty(
+ name,
+ "attribute.name",
+ attribute.getName());
+ if (emptyName != null) {
+ return emptyName;
+ }
+
+ ValidationFailure badName = CodeValidationUtil.validateJavaIdentifier(
+ name,
+ "attribute.name",
+ attribute.getName());
+ if (badName != null) {
+ return badName;
+ }
+
+ ValidationFailure emptyType = BeanValidationFailure.validateNotEmpty(
+ name,
+ "attribute.type",
+ attribute.getType());
+ if (emptyType != null) {
+ return emptyType;
+ }
+
+ ValidationFailure badType = BeanValidationFailure.validateJavaClassName(
+ name,
+ "attribute.type",
+ attribute.getType());
+ if (badType != null) {
+ return badType;
+ }
+
+ return null;
+ }
+
+ protected ValidationFailure validateEmbeddable(Embeddable embeddable) {
+
+ String name = embeddable.getClassName();
+
+ ValidationFailure emptyClass = BeanValidationFailure.validateNotEmpty(
+ name,
+ "className",
+ embeddable.getClassName());
+ if (emptyClass != null) {
+ return emptyClass;
+ }
+
+ ValidationFailure badClass = BeanValidationFailure.validateJavaClassName(
+ name,
+ "className",
+ embeddable.getClassName());
+ if (badClass != null) {
+ return badClass;
+ }
+
+ return null;
+ }
+
public void validateEntity(
ValidationResult validationBuffer,
ObjEntity entity,
@@ -208,13 +294,11 @@
}
}
- {
- for (ObjRelationship rel : entity.getRelationships()) {
- ValidationFailure failure = validateRelationship(rel, clientValidation);
- if (failure != null) {
- validationBuffer.addFailure(failure);
- return;
- }
+ for (ObjRelationship rel : entity.getRelationships()) {
+ ValidationFailure failure = validateRelationship(rel, clientValidation);
+ if (failure != null) {
+ validationBuffer.addFailure(failure);
+ return;
}
}
}
@@ -293,17 +377,18 @@
return null;
}
-
+
protected ValidationFailure validateEmbeddedAttribute(ObjAttribute attribute) {
String name = attribute.getEntity().getName();
-
+
// validate embeddedAttribute and attribute names
- // embeddedAttribute returned attibute as [name_embeddedAttribute].[name_attribute]
+ // 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);
+ String attr = attribute.getName().substring(beginIndex + 1);
ValidationFailure emptyEmbeddedName = BeanValidationFailure.validateNotEmpty(
name,
@@ -312,7 +397,7 @@
if (emptyEmbeddedName != null) {
return emptyEmbeddedName;
}
-
+
ValidationFailure badEmbeddedName = CodeValidationUtil.validateJavaIdentifier(
name,
"attribute.name",
@@ -320,7 +405,7 @@
if (badEmbeddedName != null) {
return badEmbeddedName;
}
-
+
ValidationFailure emptyName = BeanValidationFailure.validateNotEmpty(
name,
"attribute.name",
@@ -328,7 +413,7 @@
if (emptyName != null) {
return emptyName;
}
-
+
ValidationFailure badName = CodeValidationUtil.validateJavaIdentifier(
name,
"attribute.name",
@@ -501,43 +586,45 @@
}
}
- private void initOutputFolder(){
+ private void initOutputFolder() {
String path = null;
if (preferences.getOutputPath() == null) {
if (System.getProperty("cayenne.cgen.destdir") != null) {
setOutputPath(System.getProperty("cayenne.cgen.destdir"));
- } else {
+ }
+ else {
// init default directory..
FSPath lastPath = Application
.getInstance()
.getFrameController()
.getLastDirectory();
- path = checkDefaultMavenResourceDir(lastPath,"test");
+ path = checkDefaultMavenResourceDir(lastPath, "test");
- if (path != null || (path=checkDefaultMavenResourceDir(lastPath,"main")) != null) {
+ if (path != null
+ || (path = checkDefaultMavenResourceDir(lastPath, "main")) != null) {
setOutputPath(path);
- } else {
- File lastDir = (lastPath != null)
- ? lastPath.getExistingDirectory(false)
- : null;
+ }
+ else {
+ File lastDir = (lastPath != null) ? lastPath
+ .getExistingDirectory(false) : null;
setOutputPath(lastDir != null ? lastDir.getAbsolutePath() : null);
}
}
}
}
-
+
private String checkDefaultMavenResourceDir(FSPath lastPath, String dirType) {
String path = lastPath.getPath();
- String resourcePath = buildFilePath("src",dirType,"resources");
+ String resourcePath = buildFilePath("src", dirType, "resources");
int idx = path.indexOf(resourcePath);
if (idx < 0) {
return null;
}
- return path.substring(0,idx)
- + buildFilePath("src",dirType,"java") +
- path.substring(idx+resourcePath.length());
+ return path.substring(0, idx)
+ + buildFilePath("src", dirType, "java")
+ + path.substring(idx + resourcePath.length());
}
private static final String buildFilePath(String... pathElements) {
@@ -545,10 +632,9 @@
return "";
}
StringBuilder path = new StringBuilder(pathElements[0]);
- for(int i=1;i<pathElements.length;i++) {
- path.append(File.separator).append( pathElements[i]);
+ for (int i = 1; i < pathElements.length; i++) {
+ path.append(File.separator).append(pathElements[i]);
}
return path.toString();
}
-
}