diff options
author | tle | 2011-05-19 15:36:02 +0000 |
---|---|---|
committer | tle | 2011-05-19 15:36:02 +0000 |
commit | 931c14d62bf4956cff068405632162cb9b2b8b56 (patch) | |
tree | f4909a8778196658b0a0a132d926736e9dc24cee | |
parent | a66a6c5ac6c58f8403d161139d06836dcd49347b (diff) | |
download | webtools.dali-931c14d62bf4956cff068405632162cb9b2b8b56.tar.gz webtools.dali-931c14d62bf4956cff068405632162cb9b2b8b56.tar.xz webtools.dali-931c14d62bf4956cff068405632162cb9b2b8b56.zip |
341811 - Generate Entities from Tables receive syntax error on attributes (patch from Les)
6 files changed, 38 insertions, 23 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenColumn.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenColumn.java index 0b56597cae..6fed0571d6 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenColumn.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenColumn.java @@ -54,25 +54,25 @@ public class ORMGenColumn } protected String customized(String propName) { - return getCustomizer().getProperty(propName, mTable.getName(), getName()); + return getCustomizer().getProperty(propName, mTable.getName(), getDbName()); } protected boolean customizedBoolean(String propName) { - return getCustomizer().getBooleanProperty(propName, mTable.getName(), getName()); + return getCustomizer().getBooleanProperty(propName, mTable.getName(), getDbName()); } protected void setCustomized(String propName, String value) { if (value != null && value.length() == 0) { value = null; } - getCustomizer().setProperty(propName, value, mTable.getName(), getName()); + getCustomizer().setProperty(propName, value, mTable.getName(), getDbName()); } protected void setCustomizedBoolean(String propName, boolean value, boolean defaultValue) { if (defaultValue == value) { setCustomized(propName, null); //remove the property } else { - getCustomizer().setBooleanProperty(propName, value, mTable.getName(), getName()); + getCustomizer().setBooleanProperty(propName, value, mTable.getName(), getDbName()); } } @@ -84,6 +84,10 @@ public class ORMGenColumn buildColumnAnnotationName(mDbColumn.getName(), mDbColumn); return annotationName != null ? annotationName : mDbColumn.getName(); } + + public String getDbName() { + return mDbColumn.getName(); + } public String getJoinColumnName(){ String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder(). @@ -103,7 +107,7 @@ public class ORMGenColumn String name = customized(PROPERTY_NAME); if (name == null) { //name = StringUtil.columnNameToVarName(getName()); - name = EntityGenTools.convertToUniqueJavaStyleAttributeName(getName(), Collections.<String>emptySet()); + name = EntityGenTools.convertToUniqueJavaStyleAttributeName(getDbName(), Collections.<String>emptySet()); } return name; } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenCustomizer.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenCustomizer.java index cba675e47c..55c53d45ea 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenCustomizer.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenCustomizer.java @@ -25,6 +25,7 @@ import java.util.Set; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; +import org.eclipse.jpt.common.utility.internal.StringTools; import org.eclipse.jpt.jpa.db.Column; import org.eclipse.jpt.jpa.db.Schema; import org.eclipse.jpt.jpa.db.Table; @@ -529,6 +530,9 @@ public abstract class ORMGenCustomizer implements java.io.Serializable public String quote(int i) { return quote(String.valueOf(i)); } + public String convertToJavaStringLiteral(String s) { + return StringTools.convertToJavaStringLiteral(s); + } /** * Appends an annotation member name and value to an existing annotation. * diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java index 8557b03832..bcca94d610 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java @@ -65,18 +65,18 @@ public class ORMGenTable } protected String customized(String propName) { - return getCustomizer().getProperty(propName, getName(), null); + return getCustomizer().getProperty(propName, getTableName(), null); } protected boolean customizedBoolean(String propName) { - return getCustomizer().getBooleanProperty(propName, getName(), null); + return getCustomizer().getBooleanProperty(propName, getTableName(), null); } protected void setCustomized(String propName, String value) { if (value != null && value.length() == 0) { value = null; } - getCustomizer().setProperty(propName, value, getName(), null); + getCustomizer().setProperty(propName, value, getTableName(), null); } protected void setCustomizedBoolean(String propName, boolean value, boolean defaultValue) { @@ -84,7 +84,7 @@ public class ORMGenTable setCustomized(propName, null); // remove the property } else { - getCustomizer().setBooleanProperty(propName, value, getName(), null); + getCustomizer().setBooleanProperty(propName, value, getTableName(), null); } } @@ -95,10 +95,16 @@ public class ORMGenTable /** * Returns the table name. */ + public String getTableName() { + return mDbTable != null ? mDbTable.getName() : ORMGenCustomizer.ANY_TABLE; + } + public String getName() { - if (mDbTable == null) - return ORMGenCustomizer.ANY_TABLE; - return mDbTable.getName(); + if (mDbTable == null) + return ORMGenCustomizer.ANY_TABLE; + String tableName = getTableName(); + String annotationName = this.mCustomizer.getDatabaseAnnotationNameBuilder().buildTableAnnotationName(tableName, mDbTable); + return annotationName != null ? annotationName : tableName; } public String getJoinTableAnnotationName() { @@ -239,7 +245,7 @@ public class ORMGenTable if (name == null) { // name = StringUtil.tableNameToVarName(getName()); // name = StringUtil.initUpper(name); - name = EntityGenTools.convertToUniqueJavaStyleClassName(getName(), new ArrayList<String>()); + name = EntityGenTools.convertToUniqueJavaStyleClassName(getTableName(), new ArrayList<String>()); name = StringUtil.singularise(name); } return name; @@ -263,7 +269,7 @@ public class ORMGenTable * Whether the name should be singular or plural. */ public String getVarName(boolean singular) { - String name = StringUtil.tableNameToVarName(getName()); + String name = StringUtil.tableNameToVarName(getTableName()); if (singular) { name = StringUtil.singularise(name); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/column.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/column.vm index 54b98b6442..b8b19a4e69 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/column.vm +++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/column.vm @@ -20,7 +20,7 @@ #set ($members = "")
#if ( !$column.default || $customizer.generateDDLAnnotations )
#if ( !${column.defaultname} )
-#append($members "name=$customizer.quote($column.name)" )
+#append($members "name=$customizer.convertToJavaStringLiteral($column.name)" )
#end
#if (!$column.insertable)
#append(${members} "insertable=false")
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/join.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/join.vm index fccd7f219c..a98f87381f 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/join.vm +++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/join.vm @@ -3,9 +3,9 @@ ##
##macro joinColumn uses $column, $referencedColumn
#macro (joinColumn $column $referencedColumn)
-#set ($members = "name=$customizer.quote($column.joinColumnName)")
+#set ($members = "name=$customizer.convertToJavaStringLiteral($column.joinColumnName)")
#if( !$referencedColumn.primaryKey || $referencedColumn.partOfCompositePrimaryKey )
-#set ($members = "$members, referencedColumnName=$customizer.quote($referencedColumn.name)")
+#set ($members = "$members, referencedColumnName=$customizer.convertToJavaStringLiteral($referencedColumn.name)")
#end
#if( $customizer.generateDDLAnnotations )
#if ($column.unique && !$column.primaryKey)
@@ -25,7 +25,7 @@ #if ($role.association.joinTable)
#set ($joinTable = $role.association.joinTable)
@JoinTable(
- name="${joinTable.joinTableAnnotationName}"
+ name=$customizer.convertToJavaStringLiteral(${joinTable.joinTableAnnotationName})
, joinColumns={
#foreach ($column in $role.referrerColumns)
#set ($referencedColumn = $role.getReferencedColumn(${column.name}))
@@ -39,7 +39,8 @@ }
, inverseJoinColumns={
#foreach ($column in $role.referencedColumns)
-#set ($referencedColumn = $role.getReferrerColumn(${column.name}))
+#set ($referencedColumn = $role.getReferrerColumn(${column.name})
+)
##$referencedColumn is the column in the join table
#joinColumn($referencedColumn $column)
#if ($velocityCount < $role.referencedColumns.size() )
@@ -53,9 +54,9 @@ #if ($role.referrerColumns.size() == 1)
#set ($column = $role.referrerColumns.get(0))
#set ($referencedColumn = $role.getReferencedColumn(${column.name}))
-#set ($referencedTableName = $role.getReferencedTable().getName() )
-#set( $referencedTablePkName = $role.getReferencedTable().getPrimaryKeyColumn().name )
-#set( $computedJoinColumnName = "${role.propertyName}_${referencedTablePkName}" )
+#set ($referencedTableName = $customizer.convertToJavaStringLiteral($role.getReferencedTable().getName()) )
+#set( $referencedTablePkName = $customizer.convertToJavaStringLiteral($role.getReferencedTable().getPrimaryKeyColumn().name) )
+#set( $computedJoinColumnName = $customizer.convertToJavaStringLiteral("${role.propertyName}_${referencedTablePkName}") )
#set( $isDefaultJoinColumnName = $column.isDefaultJoinColumnName( ${role.propertyName}) )
#if( ! $isDefaultJoinColumnName )
#joinColumn($column $referencedColumn)
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/main.java.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/main.java.vm index 8c4d4d6811..1a4585792a 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/main.java.vm +++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/main.java.vm @@ -12,7 +12,7 @@ ${table.importStatements} */
@Entity
#if( !${table.defaultname} || $customizer.generateDDLAnnotations)
-@Table(name="${table.name}")
+@Table(name=$customizer.convertToJavaStringLiteral(${table.name}))
#end
public class ${table.className} ${table.generateExtendsImplements()} {
private static final long serialVersionUID = 1L;
|