You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by tf...@apache.org on 2011/11/26 11:59:52 UTC
svn commit: r1206426 [5/7] - in /db/torque/torque4/trunk:
torque-runtime/src/main/java/org/apache/torque/
torque-runtime/src/main/java/org/apache/torque/avalon/
torque-runtime/src/main/java/org/apache/torque/dsfactory/
torque-runtime/src/main/java/org/...
Modified: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/util/CriteriaTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/util/CriteriaTest.java?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/util/CriteriaTest.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/util/CriteriaTest.java Sat Nov 26 10:59:15 2011
@@ -27,11 +27,13 @@ import java.util.Map;
import org.apache.commons.lang.SerializationUtils;
import org.apache.torque.BaseTestCase;
+import org.apache.torque.ColumnImpl;
import org.apache.torque.Torque;
import org.apache.torque.TorqueException;
import org.apache.torque.map.ColumnMap;
import org.apache.torque.map.DatabaseMap;
import org.apache.torque.map.TableMap;
+import org.apache.torque.sql.OrderBy;
import org.apache.torque.sql.Query;
import org.apache.torque.sql.SqlBuilder;
import org.apache.torque.util.Criteria.Criterion;
@@ -52,48 +54,40 @@ public class CriteriaTest extends BaseTe
private Criteria c;
/**
- * Creates a new instance.
- *
- * @param name the name of the test to run
- */
- public CriteriaTest(String name)
- {
- super(name);
- }
-
- /**
* Initializes the criteria.
*/
- public void setUp() throws TorqueException
+ public void setUp() throws Exception
{
super.setUp();
c = new Criteria();
DatabaseMap databaseMap = Torque.getDatabaseMap("postgresql");
- TableMap tableMap = new TableMap("TABLE", 4, databaseMap);
- databaseMap.addTable(tableMap);
- {
- ColumnMap columnMap1 = new ColumnMap("COLUMN1", tableMap);
- columnMap1.setType(new String(""));
- columnMap1.setJavaType("String");
- tableMap.addColumn(columnMap1);
- }
- {
- ColumnMap columnMap2 = new ColumnMap("COLUMN2", tableMap);
- columnMap2.setType(new String(""));
- columnMap2.setJavaType("String");
- tableMap.addColumn(columnMap2);
- }
- {
- ColumnMap columnMap3 = new ColumnMap("COLUMN3", tableMap);
- columnMap3.setType(new String(""));
- columnMap3.setJavaType("String");
- tableMap.addColumn(columnMap3);
- }
+ if (!databaseMap.containsTable("TABLE"))
{
- ColumnMap columnMap4 = new ColumnMap("COLUMN4", tableMap);
- columnMap4.setType(new Integer(0));
- columnMap4.setJavaType("Integer");
- tableMap.addColumn(columnMap4);
+ TableMap tableMap = databaseMap.addTable("TABLE");
+ {
+ ColumnMap columnMap1 = new ColumnMap("COLUMN1", tableMap);
+ columnMap1.setType(new String(""));
+ columnMap1.setJavaType("String");
+ tableMap.addColumn(columnMap1);
+ }
+ {
+ ColumnMap columnMap2 = new ColumnMap("COLUMN2", tableMap);
+ columnMap2.setType(new String(""));
+ columnMap2.setJavaType("String");
+ tableMap.addColumn(columnMap2);
+ }
+ {
+ ColumnMap columnMap3 = new ColumnMap("COLUMN3", tableMap);
+ columnMap3.setType(new String(""));
+ columnMap3.setJavaType("String");
+ tableMap.addColumn(columnMap3);
+ }
+ {
+ ColumnMap columnMap4 = new ColumnMap("COLUMN4", tableMap);
+ columnMap4.setType(new Integer(0));
+ columnMap4.setJavaType("Integer");
+ tableMap.addColumn(columnMap4);
+ }
}
}
@@ -107,7 +101,7 @@ public class CriteriaTest extends BaseTe
final String value = "myValue";
// Add the string
- c.add(table, column, (Object) value);
+ c.add(table, column, value);
// Verify that the key exists
assertTrue(c.containsKey(table, column));
@@ -138,17 +132,17 @@ public class CriteriaTest extends BaseTe
final String value5 = "myValue5";
Criteria.Criterion crit2 =
- c.getNewCriterion(table2, column2, (Object) value2, Criteria.EQUAL);
+ c.getNewCriterion(table2, column2, value2, Criteria.EQUAL);
Criteria.Criterion crit3 =
- c.getNewCriterion(table3, column3, (Object) value3, Criteria.EQUAL);
+ c.getNewCriterion(table3, column3, value3, Criteria.EQUAL);
Criteria.Criterion crit4 =
- c.getNewCriterion(table4, column4, (Object) value4, Criteria.EQUAL);
+ c.getNewCriterion(table4, column4, value4, Criteria.EQUAL);
Criteria.Criterion crit5 =
- c.getNewCriterion(table5, column5, (Object) value5, Criteria.EQUAL);
+ c.getNewCriterion(table5, column5, value5, Criteria.EQUAL);
crit2.and(crit3).or(crit4.and(crit5));
c.add(crit2);
- c.addSelectColumn("*");
+ c.addSelectColumn(new ColumnImpl(null, "myTable2", null, "*"));
String expect =
"SELECT * FROM myTable2, myTable3, myTable4, myTable5 WHERE "
@@ -170,27 +164,27 @@ public class CriteriaTest extends BaseTe
Criteria.Criterion crit6 = c.getNewCriterion(
table2,
column2,
- (Object) value2,
+ value2,
Criteria.LESS_THAN);
Criteria.Criterion crit7 = c.getNewCriterion(
table3,
column3,
- (Object) value3,
+ value3,
Criteria.LESS_EQUAL);
Criteria.Criterion crit8 = c.getNewCriterion(
table4,
column4,
- (Object) value4,
+ value4,
Criteria.GREATER_THAN);
Criteria.Criterion crit9 = c.getNewCriterion(
table5,
column5,
- (Object) value5,
+ value5,
Criteria.GREATER_EQUAL);
crit6.and(crit7).or(crit8).and(crit9);
c.add(crit6);
- c.addSelectColumn("*");
+ c.addSelectColumn(new ColumnImpl(null, "myTable2", null, "*"));
expect =
"SELECT * FROM myTable2, myTable3, myTable4, myTable5 WHERE "
+ "(((myTable2.myColumn2<? "
@@ -211,7 +205,7 @@ public class CriteriaTest extends BaseTe
Criteria.Criterion compareToCriterion = c.getNewCriterion(
table5,
column5,
- (Object) value5,
+ value5,
Criteria.GREATER_EQUAL);
assertEquals(compareToCriterion.hashCode(),crit9.hashCode());
assertEquals("myTable5.myColumn5>=myValue5", crit9.toString());
@@ -224,12 +218,12 @@ public class CriteriaTest extends BaseTe
{
Criteria.Criterion cn1 =
c.getNewCriterion(
- "INVOICE.COST",
+ new ColumnImpl("INVOICE", "COST"),
1000,
Criteria.GREATER_EQUAL);
Criteria.Criterion cn2 =
c.getNewCriterion(
- "INVOICE.COST",
+ new ColumnImpl("INVOICE", "COST"),
5000,
Criteria.LESS_EQUAL);
c.add(cn1.and(cn2));
@@ -246,24 +240,22 @@ public class CriteriaTest extends BaseTe
/**
* Test Criterion.setIgnoreCase().
- * As the output is db specific the test just prints the result to
- * System.out
*/
public void testCriterionIgnoreCase() throws TorqueException
{
Criteria.Criterion criterion1 = c.getNewCriterion(
- "TABLE.COLUMN1", (Object) "FoObAr1", Criteria.LIKE);
+ new ColumnImpl("TABLE", "COLUMN1"), "FoObAr1", Criteria.LIKE);
criterion1.setIgnoreCase(true);
Criteria.Criterion criterion2 = c.getNewCriterion(
- "TABLE.COLUMN2", (Object) "FoObAr2", Criteria.EQUAL);
+ new ColumnImpl("TABLE", "COLUMN2"), "FoObAr2", Criteria.EQUAL);
criterion2.setIgnoreCase(true);
Criteria.Criterion criterion3 = c.getNewCriterion(
- "TABLE.COLUMN3", (Object) "FoObAr3", Criteria.EQUAL);
+ new ColumnImpl("TABLE", "COLUMN3"), "FoObAr3", Criteria.EQUAL);
Criteria.Criterion criterion4 = c.getNewCriterion(
- "TABLE.COLUMN4", (Object) new Integer(1), Criteria.EQUAL);
+ new ColumnImpl("TABLE", "COLUMN4"), new Integer(1), Criteria.EQUAL);
criterion4.setIgnoreCase(true);
c.add(criterion1.and(criterion2).and(criterion3).and(criterion4));
- c.addSelectColumn("*");
+ c.addSelectColumn(new ColumnImpl(null, "TABLE", null, "*"));
c.setDbName("postgresql");
Query result = SqlBuilder.buildQuery(c);
@@ -285,7 +277,7 @@ public class CriteriaTest extends BaseTe
*/
public void testBoolean() throws TorqueException
{
- c.add("TABLE.COLUMN", true);
+ c.add(new ColumnImpl("TABLE", "COLUMN"), true);
Query result = SqlBuilder.buildQuery(c);
@@ -299,7 +291,7 @@ public class CriteriaTest extends BaseTe
// test the postgresql variation
c = new Criteria();
- c.add("TABLE.COLUMN", true);
+ c.add(new ColumnImpl("TABLE", "COLUMN"), true);
c.setDbName("postgresql");
result = SqlBuilder.buildQuery(c);
@@ -318,7 +310,7 @@ public class CriteriaTest extends BaseTe
*/
public void testAddDate() throws TorqueException
{
- c.addDate("TABLE.DATE_COLUMN", 2003, 0, 22);
+ c.addDate(new ColumnImpl("TABLE", "DATE_COLUMN"), 2003, 0, 22);
Query result = SqlBuilder.buildQuery(c);
@@ -339,8 +331,8 @@ public class CriteriaTest extends BaseTe
*/
public void testAndDate() throws TorqueException
{
- c.addDate("TABLE.DATE_COLUMN", 2003, 0, 22, Criteria.GREATER_THAN);
- c.andDate("TABLE.DATE_COLUMN", 2004, 2, 24, Criteria.LESS_THAN);
+ c.addDate(new ColumnImpl("TABLE", "DATE_COLUMN"), 2003, 0, 22, Criteria.GREATER_THAN);
+ c.andDate(new ColumnImpl("TABLE", "DATE_COLUMN"), 2004, 2, 24, Criteria.LESS_THAN);
Query result = SqlBuilder.buildQuery(c);
assertEquals(
@@ -365,7 +357,7 @@ public class CriteriaTest extends BaseTe
{
Calendar cal = new GregorianCalendar(2003, 0, 22);
Date date = cal.getTime();
- c.add("TABLE.DATE_COLUMN", date);
+ c.add(new ColumnImpl("TABLE", "DATE_COLUMN"), date);
Query result = SqlBuilder.buildQuery(c);
assertEquals(
@@ -383,15 +375,29 @@ public class CriteriaTest extends BaseTe
public void testCurrentDate() throws TorqueException
{
- c.add("TABLE.DATE_COLUMN", Criteria.CURRENT_DATE)
- .add("TABLE.TIME_COLUMN", Criteria.CURRENT_TIME);
- c.addSelectColumn("COUNT(*)");
+ c.add(new ColumnImpl("TABLE", "DATE_COLUMN"), Criteria.CURRENT_DATE);
+ c.addSelectColumn(new ColumnImpl(null, "TABLE", null, "COUNT(*)"));
+
+ Query result = SqlBuilder.buildQuery(c);
+ assertEquals(
+ "SELECT COUNT(*) FROM TABLE WHERE "
+ + "TABLE.DATE_COLUMN=CURRENT_DATE",
+ result.toString());
+
+ List<Object> preparedStatementReplacements
+ = result.getPreparedStatementReplacements();
+ assertEquals(0, preparedStatementReplacements.size());
+ }
+
+ public void testCurrentTime() throws TorqueException
+ {
+ c.add(new ColumnImpl("TABLE", "TIME_COLUMN"), Criteria.CURRENT_TIME);
+ c.addSelectColumn(new ColumnImpl(null, "TABLE", null, "COUNT(*)"));
Query result = SqlBuilder.buildQuery(c);
assertEquals(
"SELECT COUNT(*) FROM TABLE WHERE "
- + "TABLE.TIME_COLUMN=CURRENT_TIME "
- + "AND TABLE.DATE_COLUMN=CURRENT_DATE",
+ + "TABLE.TIME_COLUMN=CURRENT_TIME",
result.toString());
List<Object> preparedStatementReplacements
@@ -401,9 +407,9 @@ public class CriteriaTest extends BaseTe
public void testCriteriaOffsetLimit() throws TorqueException
{
- c.addDate("TABLE.DATE_COLUMN", 2003, 0, 22);
+ c.addDate(new ColumnImpl("TABLE", "DATE_COLUMN"), 2003, 0, 22);
c.setOffset(3).setLimit(5);
- c.addSelectColumn("COUNT(*)");
+ c.addSelectColumn(new ColumnImpl(null, "TABLE", null, "COUNT(*)"));
Query result = SqlBuilder.buildQuery(c);
String expect
@@ -412,14 +418,29 @@ public class CriteriaTest extends BaseTe
assertEquals(expect, result.toString());
}
+ public void testCriteriaWithOffsetNoLimitPostgresql()
+ throws TorqueException
+ {
+ c.addDate(new ColumnImpl("TABLE", "DATE_COLUMN"), 2003, 0, 22);
+ c.setOffset(3);
+ c.addSelectColumn(new ColumnImpl(null, "TABLE", null, "COUNT(*)"));
+
+ Query result = SqlBuilder.buildQuery(c);
+ String expect
+ = "SELECT COUNT(*) FROM TABLE WHERE TABLE.DATE_COLUMN=?"
+ + " OFFSET 3";
+ assertEquals(expect, result.toString());
+ }
+
/**
* TORQUE-87
*/
- public void testCriteriaWithOffsetNoLimit() throws TorqueException
+ public void testCriteriaWithOffsetNoLimitMysql() throws TorqueException
{
- c.addDate("TABLE.DATE_COLUMN", 2003, 0, 22);
+ c.addDate(new ColumnImpl("TABLE", "DATE_COLUMN"), 2003, 0, 22);
c.setOffset(3);
- c.addSelectColumn("COUNT(*)");
+ c.addSelectColumn(new ColumnImpl(null, "TABLE", null, "COUNT(*)"));
+ c.setDbName("mysql");
Query result = SqlBuilder.buildQuery(c);
String expect
@@ -430,9 +451,9 @@ public class CriteriaTest extends BaseTe
public void testCriteriaToStringLimit() throws TorqueException
{
- c.addDate("TABLE.DATE_COLUMN", 2003, 0, 22);
+ c.addDate(new ColumnImpl("TABLE", "DATE_COLUMN"), 2003, 0, 22);
c.setLimit(5);
- c.addSelectColumn("COUNT(*)");
+ c.addSelectColumn(new ColumnImpl(null, "TABLE", null, "COUNT(*)"));
Query result = SqlBuilder.buildQuery(c);
String expect
@@ -448,7 +469,7 @@ public class CriteriaTest extends BaseTe
*/
public void testLikeWithoutWildcards() throws TorqueException
{
- c.add("TABLE.COLUMN", (Object) "no wildcards", Criteria.LIKE);
+ c.add(new ColumnImpl("TABLE", "COLUMN"), "no wildcards", Criteria.LIKE);
Query result = SqlBuilder.buildQuery(c);
assertEquals(
@@ -471,7 +492,7 @@ public class CriteriaTest extends BaseTe
*/
public void testNotLikeWithoutWildcards()
{
- c.add("TABLE.COLUMN", (Object) "no wildcards", Criteria.NOT_LIKE);
+ c.add(new ColumnImpl("TABLE", "COLUMN"), "no wildcards", Criteria.NOT_LIKE);
String firstExpect = "SELECT FROM TABLE WHERE TABLE.COLUMN!=?";
String secondExpect = "SELECT FROM TABLE WHERE TABLE.COLUMN<>?";
@@ -507,17 +528,17 @@ public class CriteriaTest extends BaseTe
c.setDbName("myDB");
c.setAll();
c.setDistinct();
- c.addSelectColumn("Author.NAME");
- c.addSelectColumn("Author.AUTHOR_ID");
- c.addDescendingOrderByColumn("Author.NAME");
- c.addAscendingOrderByColumn("Author.AUTHOR_ID");
+ c.addSelectColumn(new ColumnImpl("Author", "NAME"));
+ c.addSelectColumn(new ColumnImpl("Author", "AUTHOR_ID"));
+ c.addDescendingOrderByColumn(new ColumnImpl("Author", "NAME"));
+ c.addAscendingOrderByColumn(new ColumnImpl("Author", "AUTHOR_ID"));
c.addAlias("Writer", "Author");
- c.addAsColumn("AUTHOR_NAME", "Author.NAME");
- c.addJoin("Author.AUTHOR_ID", "Book.AUTHOR_ID", Criteria.INNER_JOIN);
- c.add("Author.NAME", (Object) "author%", Criteria.LIKE);
+ c.addAsColumn("AUTHOR_NAME", new ColumnImpl("Author", "NAME"));
+ c.addJoin(new ColumnImpl("Author", "AUTHOR_ID"), new ColumnImpl("Book", "AUTHOR_ID"), Criteria.INNER_JOIN);
+ c.add(new ColumnImpl("Author", "NAME"), "author%", Criteria.LIKE);
// Some direct Criterion checks
- Criterion cn = c.getCriterion("Author.NAME");
+ Criterion cn = c.getCriterion(new ColumnImpl("Author", "NAME"));
cn.setIgnoreCase(true);
assertEquals("author%", cn.getValue());
assertEquals(Criteria.LIKE, cn.getComparison());
@@ -544,12 +565,12 @@ public class CriteriaTest extends BaseTe
assertTrue(selectModifiersClone.contains(Criteria.DISTINCT.toString()));
assertEquals(c.getSelectModifiers(), cClone.getSelectModifiers());
List selectColumnsClone = cClone.getSelectColumns();
- assertTrue(selectColumnsClone.contains("Author.NAME"));
- assertTrue(selectColumnsClone.contains("Author.AUTHOR_ID"));
+ assertTrue(selectColumnsClone.contains(new ColumnImpl("Author", "NAME")));
+ assertTrue(selectColumnsClone.contains(new ColumnImpl("Author", "AUTHOR_ID")));
assertEquals(c.getSelectColumns(), cClone.getSelectColumns());
List orderByColumnsClone = cClone.getOrderByColumns();
- assertTrue(orderByColumnsClone.contains("Author.NAME DESC"));
- assertTrue(orderByColumnsClone.contains("Author.AUTHOR_ID ASC"));
+ assertTrue(orderByColumnsClone.contains(new OrderBy(new ColumnImpl("Author.NAME"), SqlEnum.DESC, false)));
+ assertTrue(orderByColumnsClone.contains(new OrderBy(new ColumnImpl("Author.AUTHOR_ID"), SqlEnum.ASC, false)));
assertEquals(c.getOrderByColumns(), cClone.getOrderByColumns());
Map aliasesClone = cClone.getAliases();
assertTrue(aliasesClone.containsKey("Writer"));
@@ -557,19 +578,19 @@ public class CriteriaTest extends BaseTe
assertEquals(c.getAliases(), cClone.getAliases());
Map asColumnsClone = cClone.getAsColumns();
assertTrue(asColumnsClone.containsKey("AUTHOR_NAME"));
- assertEquals("Author.NAME", asColumnsClone.get("AUTHOR_NAME"));
+ assertEquals(new ColumnImpl("Author", "NAME"), asColumnsClone.get("AUTHOR_NAME"));
assertEquals(c.getAsColumns(), cClone.getAsColumns());
// Check Joins
List joinsClone = cClone.getJoins();
Join joinClone = (Join) joinsClone.get(0);
- assertEquals("Author.AUTHOR_ID", joinClone.getLeftColumn());
- assertEquals("Book.AUTHOR_ID", joinClone.getRightColumn());
+ assertEquals(new ColumnImpl("Author", "AUTHOR_ID"), joinClone.getLeftColumn());
+ assertEquals(new ColumnImpl("Book", "AUTHOR_ID"), joinClone.getRightColumn());
assertEquals(Criteria.INNER_JOIN, joinClone.getJoinType());
assertEquals(c.getJoins(), cClone.getJoins());
// Some Criterion checks
- Criterion cnClone = cClone.getCriterion("Author.NAME");
+ Criterion cnClone = cClone.getCriterion(new ColumnImpl("Author", "NAME"));
assertEquals("author%", cnClone.getValue());
assertEquals(Criteria.LIKE, cnClone.getComparison());
assertEquals(cn.isIgnoreCase(), cnClone.isIgnoreCase());
@@ -588,9 +609,9 @@ public class CriteriaTest extends BaseTe
*/
public void testEquals() throws TorqueException
{
- c.addSelectColumn("Author.NAME");
- c.addSelectColumn("Author.AUTHOR_ID");
- c.add("Author.NAME", "foobar");
+ c.addSelectColumn(new ColumnImpl("Author", "NAME"));
+ c.addSelectColumn(new ColumnImpl("Author", "AUTHOR_ID"));
+ c.add(new ColumnImpl("Author", "NAME"), "foobar");
Criteria cClone = (Criteria) SerializationUtils.clone(c);
assertTrue(c.equals(cClone));
}
@@ -603,8 +624,7 @@ public class CriteriaTest extends BaseTe
// we need a rudimentary databaseMap for this test case to work
DatabaseMap dbMap = Torque.getDatabaseMap(Torque.getDefaultDB());
- TableMap tableMap = new TableMap("AUTHOR", dbMap);
- dbMap.addTable(tableMap);
+ TableMap tableMap = dbMap.addTable("AUTHOR");
ColumnMap columnMap = new ColumnMap("NAME", tableMap);
columnMap.setType("");
@@ -616,13 +636,12 @@ public class CriteriaTest extends BaseTe
// check that alias'ed tables are referenced by their alias
// name when added to the select clause.
- c.addSelectColumn("AUTHOR.NAME");
+ c.addSelectColumn(new ColumnImpl("AUTHOR", "NAME"));
c.addAlias("a", "AUTHOR");
- c.addJoin(
- "AUTHOR.AUTHOR_ID",
- "a." + "AUTHOR_ID");
+ c.addJoin(new ColumnImpl("AUTHOR", "AUTHOR_ID"),
+ new ColumnImpl("a", "AUTHOR_ID"));
c.addAscendingOrderByColumn(
- "a.NAME");
+ new ColumnImpl("a", "NAME"));
Query result = SqlBuilder.buildQuery(c);
assertEquals("SELECT AUTHOR.NAME, a.NAME "
Modified: db/torque/torque4/trunk/torque-runtime/src/test/resources/Torque.properties
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/resources/Torque.properties?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/test/resources/Torque.properties (original)
+++ db/torque/torque4/trunk/torque-runtime/src/test/resources/Torque.properties Sat Nov 26 10:59:15 2011
@@ -16,7 +16,7 @@
# under the License.
-torque.database.default = mysql
+torque.database.default = postgresql
torque.database.mysql.adapter=mysql
torque.dsfactory.mysql.factory= org.apache.torque.dsfactory.SharedPoolDataSourceFactory
torque.database.postgresql.adapter=postgresql
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/TemplateOptionName.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/TemplateOptionName.java?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/TemplateOptionName.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/TemplateOptionName.java Sat Nov 26 10:59:15 2011
@@ -63,14 +63,16 @@ public enum TemplateOptionName implement
OM_DB_OBJECT_DEFAULT_BASE_CLASS("torque.om.dbObjectDefaultBaseClass"),
/** The prefix of the name of the mapInit class. */
- OM_MAP_INIT_CLASS_NAME_PREFIX("torque.om.mapInit.mapInitClassNamePrefix"),
+ OM_DATABASE_MAP_INIT_CLASS_NAME_PREFIX(
+ "torque.om.mapInit.databaseMapInitClassNamePrefix"),
/** The suffix of the name of the mapInit class. */
- OM_MAP_INIT_CLASS_NAME_SUFFIX("torque.om.mapInit.mapInitClassNameSuffix"),
+ OM_DATABASE_MAP_INIT_CLASS_NAME_SUFFIX(
+ "torque.om.mapInit.databaseMapInitClassNameSuffix"),
/** The additional prefix of the name of the baseMapInit class. */
- OM_BASE_MAP_INIT_CLASS_NAME_PREFIX(
- "torque.om.mapInit.baseMapInitClassNamePrefix"),
+ OM_BASE_DATABASE_MAP_INIT_CLASS_NAME_PREFIX(
+ "torque.om.mapInit.baseDatabaseMapInitClassNamePrefix"),
/** The prefix of the name of the manager class. */
OM_MANAGER_CLASS_NAME_PREFIX("torque.om.className.managerClassNamePrefix"),
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/DatabaseAttributeName.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/DatabaseAttributeName.java?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/DatabaseAttributeName.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/DatabaseAttributeName.java Sat Nov 26 10:59:15 2011
@@ -27,11 +27,15 @@ import org.apache.torque.generator.sourc
*/
public enum DatabaseAttributeName implements SourceAttributeName
{
+ /** The name of the root database in case of an external schema,
+ * otherwise just the name of the database itself.. */
+ ROOT_DATABASE_NAME("rootDatabaseName"),
+
/** The name of the mapInit class to generate. */
- MAP_INIT_CLASS_NAME("mapInitClassName"),
+ DATABASE_MAP_INIT_CLASS_NAME("databaseMapInitClassName"),
/** The name of the mapInit class to generate. */
- BASE_MAP_INIT_CLASS_NAME("baseMapInitClassName");
+ BASE_DATABASE_MAP_INIT_CLASS_NAME("baseDatabaseMapInitClassName");
/** The name of the source element attribute, not null. */
private String name;
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/LoadExternalSchemaTransformer.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/LoadExternalSchemaTransformer.java?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/LoadExternalSchemaTransformer.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/LoadExternalSchemaTransformer.java Sat Nov 26 10:59:15 2011
@@ -20,7 +20,6 @@ package org.apache.torque.templates.tran
*/
import java.io.File;
-import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
@@ -34,6 +33,7 @@ import org.apache.torque.generator.sourc
import org.apache.torque.generator.source.transform.SourceTransformerException;
import org.apache.torque.templates.TorqueSchemaAttributeName;
import org.apache.torque.templates.TorqueSchemaElementName;
+import org.apache.torque.templates.transformer.om.mapInit.DatabaseMapInitTransformer;
/**
* A SourceTransformer which loads the external schemata tables
@@ -48,6 +48,29 @@ public class LoadExternalSchemaTransform
= LogFactory.getLog(LoadExternalSchemaTransformer.class);
/**
+ * The base dir for the external schema,
+ * or null to compute from the current source file.
+ */
+ private File baseDir;
+
+ /**
+ * Standard constructor.
+ */
+ public LoadExternalSchemaTransformer()
+ {
+ }
+
+ /**
+ * Constructor to override base dir.
+ *
+ * @param baseDir the new base dir.
+ */
+ public LoadExternalSchemaTransformer(File baseDir)
+ {
+ this.baseDir = baseDir;
+ }
+
+ /**
* Loads the external schemata tables into the current graph.
* The external database element is added as child of the
* external-schema element.
@@ -75,14 +98,25 @@ public class LoadExternalSchemaTransform
root.getChildren().add(allTables);
}
+ String rootDatabaseName = (String) root.getAttribute(
+ DatabaseAttributeName.ROOT_DATABASE_NAME);
for (SourceElement externalSchemaElement : externalSchemaElementList)
{
- File currentSourceFile = controllerState.getSourceFile();
- File baseDir = currentSourceFile.getParentFile();
+ File externalSchemaBaseDir;
+ if (this.baseDir == null)
+ {
+ File currentSourceFile = controllerState.getSourceFile();
+ externalSchemaBaseDir = currentSourceFile.getParentFile();
+ }
+ else
+ {
+ externalSchemaBaseDir = baseDir;
+ }
String relativePath = externalSchemaElement.getAttribute(
TorqueSchemaAttributeName.FILENAME)
.toString();
- File externalSchemaPath = new File(baseDir, relativePath);
+ File externalSchemaPath
+ = new File(externalSchemaBaseDir, relativePath);
try
{
FileSource fileSource = new FileSource(
@@ -91,18 +125,25 @@ public class LoadExternalSchemaTransform
controllerState);
SourceElement externalSchemaRootElement
= fileSource.getRootElement();
+ externalSchemaRootElement.setAttribute(
+ DatabaseAttributeName.ROOT_DATABASE_NAME,
+ rootDatabaseName);
+ DatabaseMapInitTransformer.setDatabaseMapInitClassNameAttributes(
+ externalSchemaRootElement,
+ rootDatabaseName,
+ controllerState);
this.transform(externalSchemaRootElement, controllerState);
externalSchemaElement.getChildren().add(
externalSchemaRootElement);
- SourceElement externalAllTables
+ SourceElement externalAllTables
= externalSchemaRootElement.getChild(
DatabaseChildElementName.ALL_TABLES);
// fill root's all-tables with all external tables
- for (SourceElement externalTable
+ for (SourceElement externalTable
: externalAllTables.getChildren(
TorqueSchemaElementName.TABLE))
{
@@ -117,8 +158,8 @@ public class LoadExternalSchemaTransform
throw new SourceTransformerException(e);
}
}
- // add own tablkes to root's all-tables
- for (SourceElement table
+ // add own tables to root's all-tables
+ for (SourceElement table
: root.getChildren(TorqueSchemaElementName.TABLE))
{
allTables.getChildren().add(table);
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTableTransformer.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTableTransformer.java?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTableTransformer.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTableTransformer.java Sat Nov 26 10:59:15 2011
@@ -139,7 +139,7 @@ public class OMTableTransformer extends
* @throws SourceTransformerException if both attributes javaName and name
* are not set on the tableElement.
*/
- protected void setJavaNameAttribute(SourceElement tableElement)
+ public static void setJavaNameAttribute(SourceElement tableElement)
throws SourceTransformerException
{
// set javaName attribute
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTransformer.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTransformer.java?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTransformer.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/OMTransformer.java Sat Nov 26 10:59:15 2011
@@ -24,7 +24,9 @@ import org.apache.torque.generator.sourc
import org.apache.torque.generator.source.transform.SourceTransformer;
import org.apache.torque.generator.source.transform.SourceTransformerException;
import org.apache.torque.templates.TemplateOptionName;
+import org.apache.torque.templates.TorqueSchemaAttributeName;
import org.apache.torque.templates.TorqueSchemaElementName;
+import org.apache.torque.templates.transformer.om.mapInit.DatabaseMapInitTransformer;
/**
* Performs the transformations which are necessary to apply the templates
@@ -104,6 +106,11 @@ public class OMTransformer implements So
{
TemplateOptionName.checkRequiredOptions(controllerState);
+ setRootDatabaseNameAttribute(root);
+ DatabaseMapInitTransformer.setDatabaseMapInitClassNameAttributes(
+ root,
+ (String) root.getAttribute(TorqueSchemaAttributeName.NAME),
+ controllerState);
// load referenced external schemata
loadExternalSchemaTransformer.transform(root, controllerState);
@@ -150,4 +157,19 @@ public class OMTransformer implements So
return root;
}
+
+ /**
+ * Sets the rootDatabaseName attribute of the database element
+ * to the database's name.
+ *
+ * @param databaseElement the database element, not null.
+ */
+ public static void setRootDatabaseNameAttribute(SourceElement databaseElement)
+ {
+ String databaseName = (String) databaseElement.getAttribute(
+ TorqueSchemaAttributeName.NAME);
+ databaseElement.setAttribute(
+ DatabaseAttributeName.ROOT_DATABASE_NAME,
+ databaseName);
+ }
}
Added: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/DatabaseMapInitTableTransformer.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/DatabaseMapInitTableTransformer.java?rev=1206426&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/DatabaseMapInitTableTransformer.java (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/DatabaseMapInitTableTransformer.java Sat Nov 26 10:59:15 2011
@@ -0,0 +1,67 @@
+package org.apache.torque.templates.transformer.om.mapInit;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.InputStreamReader;
+
+import org.apache.torque.generator.control.ControllerState;
+import org.apache.torque.generator.source.SourceElement;
+import org.apache.torque.generator.source.transform.AttributeTransformer;
+import org.apache.torque.generator.source.transform.SourceTransformerException;
+import org.apache.torque.templates.TorqueSchemaElementName;
+import org.apache.torque.templates.transformer.om.OMTableTransformer;
+
+/**
+ * A transformer which sets attributes for the table elements
+ * for generating the map init classes.
+ *
+ * @version $Id: $
+ */
+public class DatabaseMapInitTableTransformer extends AttributeTransformer
+{
+ /**
+ * Constructor.
+ *
+ * @throws SourceTransformerException if the attribute map is malformed.
+ */
+ public DatabaseMapInitTableTransformer() throws SourceTransformerException
+ {
+ super(new InputStreamReader(
+ DatabaseMapInitTableTransformer.class
+ .getResourceAsStream(
+ "DatabaseMapInitTableTransformer.properties")));
+ }
+
+ public SourceElement transform(
+ SourceElement rootElement,
+ ControllerState controllerState)
+ throws SourceTransformerException
+ {
+ if (!TorqueSchemaElementName.TABLE.getName().equals(
+ rootElement.getName()))
+ {
+ throw new IllegalArgumentException("Illegal element Name "
+ + rootElement.getName());
+ }
+ OMTableTransformer.setJavaNameAttribute(rootElement);
+ super.transform(rootElement, controllerState);
+ return rootElement;
+ }
+ }
Copied: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/DatabaseMapInitTransformer.java (from r1145732, db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/MapInitDatabaseTransformer.java)
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/DatabaseMapInitTransformer.java?p2=db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/DatabaseMapInitTransformer.java&p1=db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/MapInitDatabaseTransformer.java&r1=1145732&r2=1206426&rev=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/MapInitDatabaseTransformer.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/om/mapInit/DatabaseMapInitTransformer.java Sat Nov 26 10:59:15 2011
@@ -19,80 +19,203 @@ package org.apache.torque.templates.tran
* under the License.
*/
+import java.io.File;
import java.io.InputStreamReader;
import org.apache.torque.generator.control.ControllerState;
import org.apache.torque.generator.processor.string.Camelbacker;
import org.apache.torque.generator.source.SourceElement;
+import org.apache.torque.generator.source.stream.CombinedFileSource;
import org.apache.torque.generator.source.transform.AttributeTransformer;
+import org.apache.torque.generator.source.transform.SourceTransformer;
import org.apache.torque.generator.source.transform.SourceTransformerException;
import org.apache.torque.templates.TemplateOptionName;
import org.apache.torque.templates.TorqueSchemaAttributeName;
import org.apache.torque.templates.TorqueSchemaElementName;
import org.apache.torque.templates.transformer.om.DatabaseAttributeName;
+import org.apache.torque.templates.transformer.om.DatabaseChildElementName;
+import org.apache.torque.templates.transformer.om.LoadExternalSchemaTransformer;
+import org.apache.torque.templates.transformer.om.OMTransformer;
/**
- * A transformer providing extra attributes for the genreration of the
- * mapInit classes.
+ * A transformer providing extra attributes for the generation of the
+ * mapInit classes. It collects all tables for a database with the same name
+ * and also sets attributes needed for java generation.
*
* @version $Id: $
*/
-public class MapInitDatabaseTransformer extends AttributeTransformer
+public class DatabaseMapInitTransformer extends AttributeTransformer
{
/** The camelbacker for creating the MapInit class name. */
private static Camelbacker camelbacker = new Camelbacker();
+ static
+ {
+ camelbacker.setDefaultLowerCase(false);
+ }
+
+ /**
+ * The element under which all databases with same names are collected.
+ */
+ private static final String DATABASE_SETS_ELEMENT = "databaseSets";
+
+ /**
+ * The element under which the tables of all databases with the same name
+ * are collected.
+ */
+ private static final String DATABASE_SET_ELEMENT = "databaseSet";
+
+ /** The transformer for table elements. */
+ private DatabaseMapInitTableTransformer tableTransformer
+ = new DatabaseMapInitTableTransformer();
+
/**
* Constructor.
*
* @throws SourceTransformerException if the attribute map is malformed.
*/
- public MapInitDatabaseTransformer() throws SourceTransformerException
+ public DatabaseMapInitTransformer() throws SourceTransformerException
{
super(new InputStreamReader(
- MapInitDatabaseTransformer.class
+ DatabaseMapInitTransformer.class
.getResourceAsStream(
- "MapInitDatabaseTransformer.properties")));
+ "DatabaseMapInitTransformer.properties")));
}
public SourceElement transform(
- SourceElement databaseElement,
+ SourceElement rootElement,
ControllerState controllerState)
throws SourceTransformerException
{
- if (!TorqueSchemaElementName.DATABASE.getName().equals(
- databaseElement.getName()))
+ if (!CombinedFileSource.ROOT_ELEMENT_NAME.equals(
+ rootElement.getName()))
{
throw new IllegalArgumentException("Illegal element Name "
- + databaseElement.getName());
+ + rootElement.getName());
+ }
+ SourceElement databaseSetsElement
+ = new SourceElement(DATABASE_SETS_ELEMENT);
+ rootElement.getChildren().add(databaseSetsElement);
+
+ for (SourceElement fileElement
+ : rootElement.getChildren(CombinedFileSource.FILE_ELEMENT_NAME))
+ {
+ SourceElement databaseElement
+ = fileElement.getChild(TorqueSchemaElementName.DATABASE);
+ if (databaseElement == null)
+ {
+ throw new IllegalArgumentException("The root element of file "
+ + fileElement.getAttribute(
+ CombinedFileSource.PATH_ATTRIBUTE_NAME)
+ + " is unknown, should be "
+ + TorqueSchemaElementName.DATABASE.getName());
+ }
+ String name = (String) databaseElement.getAttribute(
+ TorqueSchemaAttributeName.NAME.getName());
+ if (name == null)
+ {
+ throw new SourceTransformerException("The attribute "
+ + TorqueSchemaAttributeName.NAME.getName()
+ + " on element "
+ + databaseElement.getName()
+ + " is null");
+ }
+ OMTransformer.setRootDatabaseNameAttribute(databaseElement);
+ // load referenced external schemata
+ String path = (String) fileElement.getAttribute(
+ CombinedFileSource.PATH_ATTRIBUTE_NAME);
+ File pathFile = new File(path);
+ SourceTransformer loadExternalSchemaTransformer
+ = new LoadExternalSchemaTransformer(
+ pathFile.getParentFile());
+ loadExternalSchemaTransformer.transform(
+ databaseElement,
+ controllerState);
+
+ SourceElement allTablesRoot
+ = databaseElement.getChild(DatabaseChildElementName.ALL_TABLES);
+
+ SourceElement databaseSetElement = getDatabaseSetWithDatabaseName(
+ databaseSetsElement,
+ name);
+ if (databaseSetElement == null)
+ {
+ databaseSetElement = new SourceElement(DATABASE_SET_ELEMENT);
+ databaseSetElement.setAttribute(
+ TorqueSchemaAttributeName.NAME,
+ name);
+ databaseSetsElement.getChildren().add(databaseSetElement);
+ }
+ for (SourceElement tableElement : allTablesRoot.getChildren(
+ TorqueSchemaElementName.TABLE))
+ {
+ databaseSetElement.getChildren().add(tableElement);
+ }
}
- String name = (String) databaseElement.getAttribute(
- TorqueSchemaAttributeName.NAME.getName());
- if (name == null)
+
+ for (SourceElement databaseSetElement
+ : databaseSetsElement.getChildren(DATABASE_SET_ELEMENT))
{
- throw new SourceTransformerException("The attribute "
- + TorqueSchemaAttributeName.NAME.getName()
- + " on element "
- + databaseElement.getName()
- + " is null");
+ String name = (String) databaseSetElement.getAttribute(
+ TorqueSchemaAttributeName.NAME);
+ setDatabaseMapInitClassNameAttributes(
+ databaseSetElement,
+ name,
+ controllerState);
+ super.transform(databaseSetElement, controllerState);
+ for (SourceElement tableElement
+ : databaseSetElement.getChildren(TorqueSchemaElementName.TABLE))
+ {
+ tableTransformer.transform(tableElement, controllerState);
+ }
}
- String mapInitClassName
+ return rootElement;
+ }
+
+ /**
+ * Sets the databaseMapInitClassName and baseDatabaseMapInitClassName
+ * attributes on a source element.
+ *
+ * @param sourceElement the element where the attribute should be set,
+ * not null.
+ * @param databaseName the name of the database element, not null.
+ * @param controllerState the controller state, not null.
+ */
+ public static void setDatabaseMapInitClassNameAttributes(
+ SourceElement sourceElement,
+ String databaseName,
+ ControllerState controllerState)
+ {
+ String databaseMapInitClassName
= controllerState.getOption(
- TemplateOptionName.OM_MAP_INIT_CLASS_NAME_PREFIX)
- + camelbacker.process(name)
+ TemplateOptionName.OM_DATABASE_MAP_INIT_CLASS_NAME_PREFIX)
+ + camelbacker.process(databaseName)
+ controllerState.getOption(
- TemplateOptionName.OM_MAP_INIT_CLASS_NAME_SUFFIX);
- databaseElement.setAttribute(
- DatabaseAttributeName.MAP_INIT_CLASS_NAME,
- mapInitClassName);
+ TemplateOptionName.OM_DATABASE_MAP_INIT_CLASS_NAME_SUFFIX);
+ sourceElement.setAttribute(
+ DatabaseAttributeName.DATABASE_MAP_INIT_CLASS_NAME,
+ databaseMapInitClassName);
String baseMapInitClassName
= controllerState.getOption(
- TemplateOptionName.OM_BASE_MAP_INIT_CLASS_NAME_PREFIX)
- + mapInitClassName;
- databaseElement.setAttribute(
- DatabaseAttributeName.BASE_MAP_INIT_CLASS_NAME,
+ TemplateOptionName.OM_BASE_DATABASE_MAP_INIT_CLASS_NAME_PREFIX)
+ + databaseMapInitClassName;
+ sourceElement.setAttribute(
+ DatabaseAttributeName.BASE_DATABASE_MAP_INIT_CLASS_NAME,
baseMapInitClassName);
- super.transform(databaseElement, controllerState);
- return databaseElement;
+ }
+
+ private SourceElement getDatabaseSetWithDatabaseName(
+ SourceElement databaseSetsElement, String name)
+ {
+ for (SourceElement databaseSetElement
+ : databaseSetsElement.getChildren(DATABASE_SET_ELEMENT))
+ {
+ if (databaseSetElement.getAttribute(TorqueSchemaAttributeName.NAME)
+ .equals(name))
+ {
+ return databaseSetElement;
+ }
+ }
+ return null;
}
}
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/control.xml?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/control.xml Sat Nov 26 10:59:15 2011
@@ -420,20 +420,20 @@
<mergepoint name="package">
<action
xsi:type="optionAction"
- option="torque.om.mapInit.mapInitPackage"
+ option="torque.om.mapInit.databaseMapInitPackage"
acceptNotSet="false"/>
</mergepoint>
<mergepoint name="classname">
<action
xsi:type="sourceElementAttributeAction"
element="."
- attribute="mapInitClassName"
+ attribute="databaseMapInitClassName"
acceptNotSet="false"/>
</mergepoint>
</filenameOutlet>
- <source xsi:type="fileSource" elements="database"
+ <source xsi:type="fileSource" combineFiles="true" elements="source/databaseSets/databaseSet"
skipDecider="org.apache.torque.templates.skipdecider.MapInitSkipDecider">
- <transformer class="org.apache.torque.templates.transformer.om.mapInit.MapInitDatabaseTransformer"/>
+ <transformer class="org.apache.torque.templates.transformer.om.mapInit.DatabaseMapInitTransformer"/>
<include>*schema.xml</include>
<exclude>id-table-schema.xml</exclude>
</source>
@@ -455,14 +455,13 @@
<action
xsi:type="sourceElementAttributeAction"
element="."
- attribute="baseMapInitClassName"
+ attribute="baseDatabaseMapInitClassName"
acceptNotSet="false"/>
</mergepoint>
</filenameOutlet>
- <source xsi:type="fileSource" elements="database"
+ <source xsi:type="fileSource" combineFiles="true" elements="source/databaseSets/databaseSet"
skipDecider="org.apache.torque.templates.skipdecider.MapInitSkipDecider">
- <transformer class="org.apache.torque.templates.transformer.om.mapInit.MapInitDatabaseTransformer"/>
- <transformer class="org.apache.torque.templates.transformer.om.OMTransformer"/>
+ <transformer class="org.apache.torque.templates.transformer.om.mapInit.DatabaseMapInitTransformer"/>
<include>*schema.xml</include>
<exclude>id-table-schema.xml</exclude>
</source>
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties Sat Nov 26 10:59:15 2011
@@ -77,10 +77,10 @@ torque.om.trackNew = true
# If true, a MapInit Class is generated for each database which can be used
# to initialize all database map classes
torque.om.generateMapInit = false
-torque.om.mapInit.mapInitClassNamePrefix =
-torque.om.mapInit.mapInitClassNameSuffix = MapInit
-torque.om.mapInit.baseMapInitClassNamePrefix = Base
-torque.om.mapInit.mapInitPackage = org.apache.torque.linkage
+torque.om.mapInit.databaseMapInitClassNamePrefix =
+torque.om.mapInit.databaseMapInitClassNameSuffix = DatabaseMapInit
+torque.om.mapInit.baseDatabaseMapInitClassNamePrefix = Base
+torque.om.mapInit.databaseMapInitPackage = org.apache.torque.linkage
# Settings for foreign key methods
# Prefix and Suffix for the getter of the foreign key
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/mapBuilder.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/mapBuilder.xml?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/mapBuilder.xml (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/mapBuilder.xml Sat Nov 26 10:59:15 2011
@@ -30,20 +30,21 @@
<mergepoint name="classJavadoc">
<action xsi:type="applyAction" outlet="torque.om.mapBuilder.classJavadoc"/>
</mergepoint>
- <mergepoint name="classNameConstant">
- <action xsi:type="applyAction" outlet="torque.om.mapBuilder.classNameConstant"/>
+ <mergepoint name="tableConstant">
+ <action xsi:type="applyAction" outlet="torque.om.mapBuilder.tableConstant"/>
</mergepoint>
- <mergepoint name="dbMapField">
- <action xsi:type="applyAction" outlet="torque.om.mapBuilder.dbMapField"/>
+ <mergepoint name="columnConstants">
+ <action xsi:type="traverseAllAction" element="column"
+ outlet="torque.om.mapBuilder.columnConstant"/>
</mergepoint>
- <mergepoint name="isBuilt">
- <action xsi:type="applyAction" outlet="torque.om.mapBuilder.isBuilt"/>
+ <mergepoint name="staticInit">
+ <action xsi:type="applyAction" outlet="torque.om.mapBuilder.staticInit"/>
</mergepoint>
- <mergepoint name="getDatabaseMap">
- <action xsi:type="applyAction" outlet="torque.om.mapBuilder.getDatabaseMap"/>
+ <mergepoint name="initDatabaseMap">
+ <action xsi:type="applyAction" outlet="torque.om.mapBuilder.initDatabaseMap"/>
</mergepoint>
- <mergepoint name="doBuild">
- <action xsi:type="applyAction" outlet="torque.om.mapBuilder.doBuild"/>
+ <mergepoint name="getTableMap">
+ <action xsi:type="applyAction" outlet="torque.om.mapBuilder.getTableMap"/>
</mergepoint>
<mergepoint name="extensions"/>
</outlet>
@@ -58,28 +59,53 @@
path="mapBuilder/classJavadoc.vm">
</outlet>
- <outlet name="torque.om.mapBuilder.classNameConstant"
+ <outlet name="torque.om.mapBuilder.tableConstant"
xsi:type="velocityOutlet"
- path="mapBuilder/classNameConstant.vm">
+ path="mapBuilder/tableConstant.vm">
</outlet>
- <outlet name="torque.om.mapBuilder.dbMapField"
+ <outlet name="torque.om.mapBuilder.columnConstant"
xsi:type="velocityOutlet"
- path="mapBuilder/dbMapField.vm">
+ path="mapBuilder/columnConstant.vm">
</outlet>
- <outlet name="torque.om.mapBuilder.isBuilt"
+ <outlet name="torque.om.mapBuilder.staticInit"
xsi:type="velocityOutlet"
- path="mapBuilder/isBuilt.vm">
+ path="mapBuilder/staticInit.vm">
+ <mergepoint name="tableConstantInit">
+ <action xsi:type="applyAction" outlet="torque.om.mapBuilder.tableConstantInit"/>
+ </mergepoint>
+ <mergepoint name="columnConstantsInit">
+ <action xsi:type="traverseAllAction" element="column"
+ outlet="torque.om.mapBuilder.columnConstantInit"/>
+ </mergepoint>
+ <mergepoint name="foreignKeysInit">
+ <action xsi:type="applyAction" outlet="torque.om.mapBuilder.foreignKeysInit"/>
+ </mergepoint>
+ </outlet>
+
+ <outlet name="torque.om.mapBuilder.tableConstantInit"
+ xsi:type="velocityOutlet"
+ path="mapBuilder/tableConstantInit.vm">
</outlet>
- <outlet name="torque.om.mapBuilder.getDatabaseMap"
+ <outlet name="torque.om.mapBuilder.columnConstantInit"
+ xsi:type="velocityOutlet"
+ path="mapBuilder/columnConstantInit.vm">
+ </outlet>
+
+ <outlet name="torque.om.mapBuilder.foreignKeysInit"
+ xsi:type="velocityOutlet"
+ path="mapBuilder/foreignKeysInit.vm">
+ </outlet>
+
+ <outlet name="torque.om.mapBuilder.initDatabaseMap"
xsi:type="velocityOutlet"
- path="mapBuilder/getDatabaseMap.vm">
+ path="mapBuilder/initDatabaseMap.vm">
</outlet>
- <outlet name="torque.om.mapBuilder.doBuild"
+ <outlet name="torque.om.mapBuilder.getTableMap"
xsi:type="velocityOutlet"
- path="mapBuilder/doBuild.vm">
+ path="mapBuilder/getTableMap.vm">
</outlet>
</outlets>
\ No newline at end of file
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peer.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peer.xml?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peer.xml (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/outlets/peer.xml Sat Nov 26 10:59:15 2011
@@ -70,9 +70,6 @@
<mergepoint name="serialVersionUid">
<action xsi:type="applyAction" outlet="torque.om.serialVersionUid"/>
</mergepoint>
- <mergepoint name="mapBuilderGetter">
- <action xsi:type="applyAction" outlet="torque.om.peer.impl.base.mapBuilderGetter"/>
- </mergepoint>
<mergepoint name="resultSet2Objects">
<action xsi:type="applyAction" outlet="torque.om.peer.impl.base.resultSet2Objects"/>
</mergepoint>
@@ -158,12 +155,7 @@
path="peer/impl/base/log.vm">
</outlet>
- <outlet name="torque.om.peer.impl.base.mapBuilderGetter"
- xsi:type="velocityOutlet"
- path="peer/impl/base/mapBuilderGetter.vm">
- </outlet>
-
- <outlet name="torque.om.peer.impl.base.resultSet2Objects"
+ <outlet name="torque.om.peer.impl.base.resultSet2Objects"
xsi:type="velocityOutlet"
path="peer/impl/base/resultSet2Objects.vm">
</outlet>
@@ -301,9 +293,6 @@
<mergepoint name="peerImplSetter">
<action xsi:type="applyAction" outlet="torque.om.peer.base.peerImplSetter"/>
</mergepoint>
- <mergepoint name="mapBuilderGetter">
- <action xsi:type="applyAction" outlet="torque.om.peer.base.mapBuilderGetter"/>
- </mergepoint>
<mergepoint name="numColumnConstant">
<action xsi:type="applyAction" outlet="torque.om.peer.base.numColumnConstant"/>
</mergepoint>
@@ -418,25 +407,6 @@
<mergepoint name="tableDatabaseNameConstantsInit">
<action xsi:type="applyAction" outlet="torque.om.peer.base.tableDatabaseNameConstantsInit"/>
</mergepoint>
- <mergepoint name="columnConstantsInit">
- <action xsi:type="traverseAllAction"
- element="column"
- outlet="torque.om.peer.base.columnConstantInit"/>
- </mergepoint>
- <mergepoint name="mapBuilderInit">
- <action xsi:type="applyAction"
- outlet="torque.om.peer.base.mapBuilderInit"/>
- </mergepoint>
- </outlet>
-
- <outlet name="torque.om.peer.base.columnConstantInit"
- xsi:type="velocityOutlet"
- path="peer/base/columnConstantInit.vm">
- </outlet>
-
- <outlet name="torque.om.peer.base.mapBuilderInit"
- xsi:type="velocityOutlet"
- path="peer/base/mapBuilderInit.vm">
</outlet>
<outlet name="torque.om.peer.base.peerImplCreator"
@@ -454,11 +424,6 @@
path="peer/base/peerImplSetter.vm">
</outlet>
- <outlet name="torque.om.peer.base.mapBuilderGetter"
- xsi:type="velocityOutlet"
- path="peer/base/mapBuilderGetter.vm">
- </outlet>
-
<outlet name="torque.om.peer.base.numColumnConstant"
xsi:type="velocityOutlet"
path="peer/base/numColumnConstant.vm">
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObject.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObject.vm?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObject.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/baseDbObject.vm Sat Nov 26 10:59:15 2011
@@ -27,6 +27,7 @@
##
package $baseDbObjectPackage;
+import java.io.Serializable;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collections;
@@ -81,7 +82,7 @@ $torqueGen.mergepoint("classJavadoc")
#set ($extendsBaseClass = "extends $baseClass" )
#end
public abstract class $baseDbObjectClassName $extendsBaseClass
- implements Persistent##
+ implements Persistent, Serializable##
#if ($torqueGen.booleanOption("torque.om.addIntakeRetrievable")), $torqueGen.option("torque.om.retrievableInterface")#end##
#if ($torqueGen.booleanOption("torque.om.addGetByNameMethods")), ColumnAccessByName#end##
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/getByNameMethods.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/getByNameMethods.vm?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/getByNameMethods.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/base/getByNameMethods.vm Sat Nov 26 10:59:15 2011
@@ -230,7 +230,7 @@
#set ( $columnFieldType = ${columnElement.getAttribute("fieldType")} )
#set ( $javaName = ${columnElement.getAttribute("javaName")} )
#set ( $peerColumnName = ${columnElement.getAttribute("peerColumnName")} )
- if (${peerName}.${peerColumnName}.equals(name))
+ if (${peerName}.${peerColumnName}.getSqlExpression().equals(name))
{
return setByName("${javaName}", value);
}
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/dbObject.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/dbObject.vm?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/dbObject.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/dbObject/dbObject.vm Sat Nov 26 10:59:15 2011
@@ -24,11 +24,6 @@
## The template expects as input a "table" element from the torque schema
## which was processed by the OMTransformer.
##
-#if ($interface)
- #set ($interface = ", $interface")
-#else
- #set ($interface = "")
-#end
package $dbObjectPackage;
#if ($abstract == "true")
@@ -42,7 +37,9 @@ import org.apache.torque.om.Persistent;
$torqueGen.mergepoint("classJavadoc")
public $abstract class $dbObjectClassName
extends ${baseDbObjectPackage}.${baseDbObjectClassName}
- implements Persistent$interface
+#if ($interface)
+ implements $interface
+#end
{
$torqueGen.mergepoint("serialVersionUid")
$torqueGen.mergepoint("extensions")
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/columnConstant.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/columnConstant.vm?rev=1206426&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/columnConstant.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/columnConstant.vm Sat Nov 26 10:59:15 2011
@@ -0,0 +1,32 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+######
+##
+## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
+##
+## Creates the constants for the column names in the map builder class.
+##
+## This template expects the current source element to be a "table" element
+## from the torque schema.
+## The schema needs to be processed by the OMTransformer.
+## The options and the attributes of the current source element must be set
+## as velocity variables.
+##
+
+ /** The column map for the ${name} field */
+ public static final ColumnMap ${peerColumnName};
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/columnConstantInit.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/columnConstantInit.vm?rev=1206426&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/columnConstantInit.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/columnConstantInit.vm Sat Nov 26 10:59:15 2011
@@ -0,0 +1,81 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+######
+##
+## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
+##
+## Initializes the constants for the columns and registers the columns in the
+## table map in the map builder class.
+##
+## This template expects the current source element to be a "column" element
+## from the torque schema.
+## The schema needs to be processed by the OMTransformer.
+## The options and the attributes of the current source element must be set
+## as velocity variables.
+##
+#set ( $tableElement = $torqueGen.getParent() )
+#set ( $position = 1 )
+ // ------------- Column: $name --------------------
+ ${peerColumnName} = new ColumnMap("$name", TABLE);
+ ${peerColumnName}.setType($sampleObject);
+ ${peerColumnName}.setTorqueType("$type");
+ ${peerColumnName}.setUsePrimitive($primitive);
+ ${peerColumnName}.setPrimaryKey($primaryKey);
+ ${peerColumnName}.setNotNull($required);
+ ${peerColumnName}.setJavaName("$javaName");
+ ${peerColumnName}.setAutoIncrement($autoIncrement);
+ ${peerColumnName}.setProtected($protected);
+#if ($fieldType)
+ ${peerColumnName}.setJavaType( "${fieldType}" );
+#end
+#if ($description)
+ ${peerColumnName}.setDescription("${description}");
+#end
+#if ($default)
+ ${peerColumnName}.setDefault("$default");
+#end
+#if ($inheritance != "false")
+ ${peerColumnName}.setInheritance("$inheritance");
+#end
+#if ($size)
+ ${peerColumnName}.setSize($size);
+ #if ($scale)
+ ${peerColumnName}.setScale($scale);
+ #end
+#end
+#set ( $columnOptionElements = $torqueGen.getChildren("option") )
+#foreach ( $optionElement in $columnOptionElements )
+ #set ( $key = $optionElement.getAttribute("key") )
+ #set ( $value = $optionElement.getAttribute("value") )
+ ${peerColumnName}.setOption("$key", "$value");
+#end
+#if ($inheritance != "false")
+ ${peerColumnName}.setUseInheritance(true);
+ InheritanceMap iMap = null;
+ #set ( $inheritanceElements = $torqueGen.getChildren("inheritance"))
+ #foreach ($inheritanceElement in $inheritanceElements)
+ #set ( $key = $inheritanceElement.getAttribute("key") )
+ #set ( $class = $inheritanceElement.getAttribute("class") )
+ #set ( $extends = $inheritanceElement.getAttribute("extends") )
+ iMap = new InheritanceMap(${peerColumnName},"$key","$class","$extends");
+ ${peerColumnName}.addInheritanceMap(iMap);
+ #end
+#end
+#set ($position = ${torqueGen.getSourceElement().getPreceding("column").size()} + 1)
+ ${peerColumnName}.setPosition($position);
+ TABLE.addColumn(${peerColumnName});
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/foreignKeysInit.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/foreignKeysInit.vm?rev=1206426&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/foreignKeysInit.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/foreignKeysInit.vm Sat Nov 26 10:59:15 2011
@@ -0,0 +1,68 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+######
+##
+## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
+##
+## Initializes the foreign keys for the table map in the map builder class.
+##
+## This template expects the current source element to be a "table" element
+## from the torque schema.
+## The options and the attributes of the current source element must be set
+## as velocity variables.
+##
+#set ( $foreignKeyElements = $torqueGen.getChildren("foreign-key") )
+#if (!$foreignKeyElements.isEmpty())
+
+ // ------------- Foreign keys --------------------
+ ForeignKeyMap foreignKeyMap;
+ TableMap foreignTable;
+ String foreignTableName;
+ #foreach ($foreignKeyElement in $foreignKeyElements)
+ #set($foreignTableName = $foreignKeyElement.getAttribute("foreignTable"))
+ foreignTableName = "${foreignTableName}";
+ foreignTable = dbMap.getTable(foreignTableName);
+ if (foreignTable == null)
+ {
+ foreignKeyMap = new ForeignKeyMap(TABLE, foreignTableName);
+ #set ( $referenceElements = $foreignKeyElement.getChildren("reference") )
+ #foreach ($referenceElement in $referenceElements)
+ #set($localColumn = $referenceElement.getAttribute("local"))
+ #set($foreignColumn = $referenceElement.getAttribute("foreign"))
+ foreignKeyMap.addColumns(new ForeignKeyMap.ColumnPair(
+ foreignKeyMap,
+ TABLE.getColumn("${localColumn}"),
+ "${foreignColumn}"));
+ #end
+ }
+ else
+ {
+ foreignKeyMap = new ForeignKeyMap(TABLE, foreignTable);
+ #foreach ($referenceElement in $referenceElements)
+ #set($localColumn = $referenceElement.getAttribute("local"))
+ #set($foreignColumn = $referenceElement.getAttribute("foreign"))
+ foreignKeyMap.addColumns(new ForeignKeyMap.ColumnPair(
+ foreignKeyMap,
+ TABLE.getColumn("${localColumn}"),
+ foreignTable.getColumn("${foreignColumn}")));
+ #end
+ }
+ TABLE.addForeignKey(foreignKeyMap);
+ #end
+#end
+
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/getTableMap.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/getTableMap.vm?rev=1206426&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/getTableMap.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/getTableMap.vm Sat Nov 26 10:59:15 2011
@@ -0,0 +1,35 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+######
+##
+## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
+##
+## Creates the getTableMap method for a map builder object.
+##
+## This template expects the current source element to be a "table" element
+## from the torque schema.
+## The schema needs to be processed by the OMTransformer.
+## The options and the attributes of the current source element must be set
+## as velocity variables.
+##
+#set ( $databaseElement = $torqueGen.getParent() )
+#set ( $databaseName = $databaseElement.getAttribute("name") )
+ public static TableMap getTableMap()
+ {
+ return TABLE;
+ }
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/imports.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/imports.vm?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/imports.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/imports.vm Sat Nov 26 10:59:15 2011
@@ -27,19 +27,20 @@
## The options and the attributes of the current source element must be set
## as velocity variables.
##
+import static org.apache.torque.adapter.DB.AUTO_INCREMENT;
+import static org.apache.torque.adapter.DB.ID_BROKER;
+import static org.apache.torque.adapter.DB.SEQUENCE;
+
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import org.apache.torque.Torque;
-import org.apache.torque.TorqueException;
#if ($table.IdMethod == "native")
import org.apache.torque.adapter.DB;
#end
-import org.apache.torque.map.MapBuilder;
import org.apache.torque.map.DatabaseMap;
import org.apache.torque.map.TableMap;
import org.apache.torque.map.ColumnMap;
import org.apache.torque.map.ForeignKeyMap;
import org.apache.torque.map.InheritanceMap;
-
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/initDatabaseMap.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/initDatabaseMap.vm?rev=1206426&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/initDatabaseMap.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/initDatabaseMap.vm Sat Nov 26 10:59:15 2011
@@ -0,0 +1,47 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+######
+##
+## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
+##
+## Creates the initDatabaseMap method for a map builder object.
+##
+## This template expects the current source element to be a "table" element
+## from the torque schema.
+## The schema needs to be processed by the OMTransformer.
+## The options and the attributes of the current source element must be set
+## as velocity variables.
+##
+#set ( $databaseElement = $torqueGen.getParent() )
+#set ( $databaseName = $databaseElement.getAttribute("name") )
+#set ( $baseDatabaseMapInitClassName = $databaseElement.getAttribute("baseDatabaseMapInitClassName") )
+#set ( $databaseOptionElements = $databaseElement.getChildren("option") )
+ public static void initDatabaseMap()
+ {
+ ${baseDatabaseMapInitClassName}.init();
+## TODO the following needs not be executed for every table
+## but it causes no harm
+#if (${databaseOptionElements.size()} > 0)
+ DatabaseMap databaseMap = Torque.getDatabaseMap("$databaseName");
+#end
+#foreach($databaseOptionElement in $databaseOptionElements)
+ #set ( $key = $databaseOptionElement.getAttribute("key") )
+ #set ( $value = $databaseOptionElement.getAttribute("value") )
+ databaseMap.setOption("$key", "$value");
+#end
+ }
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/mapBuilder.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/mapBuilder.vm?rev=1206426&r1=1206425&r2=1206426&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/mapBuilder.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/mapBuilder.vm Sat Nov 26 10:59:15 2011
@@ -28,14 +28,16 @@
## as velocity variables.
##
package ${mapBuilderPackage};
+
$torqueGen.mergepoint("imports")
+
$torqueGen.mergepoint("classJavadoc")
-public class ${mapBuilderClassName} implements MapBuilder
+public class ${mapBuilderClassName}
{
-$torqueGen.mergepoint("classNameConstant")
-$torqueGen.mergepoint("dbMapField")
-$torqueGen.mergepoint("isBuilt")
-$torqueGen.mergepoint("getDatabaseMap")
-$torqueGen.mergepoint("doBuild")
+$torqueGen.mergepoint("tableConstant")
+$torqueGen.mergepoint("columnConstants")
+$torqueGen.mergepoint("staticInit")
+$torqueGen.mergepoint("getTableMap")
+$torqueGen.mergepoint("initDatabaseMap")
$torqueGen.mergepoint("extensions")
}
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/staticInit.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/staticInit.vm?rev=1206426&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/staticInit.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/staticInit.vm Sat Nov 26 10:59:15 2011
@@ -0,0 +1,45 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+######
+##
+## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
+##
+## Creates the static initializer for a map builder object.
+##
+## This template expects the current source element to be a "table" element
+## from the torque schema.
+## The schema needs to be processed by the OMTransformer.
+## The options and the attributes of the current source element must be set
+## as velocity variables.
+##
+#set ( $databaseElement = $torqueGen.getParent() )
+#set ( $databaseName = $databaseElement.getAttribute("name") )
+#set ( $databaseOptionElements = $databaseElement.getChildren("option") )
+ static
+ {
+ DatabaseMap dbMap = Torque.getDatabaseMap("$databaseName");
+ if (dbMap.getTable("$name") == null)
+ {
+ dbMap.addTable("$name");
+ }
+
+$torqueGen.mergepoint("tableConstantInit")
+$torqueGen.mergepoint("columnConstantsInit")
+$torqueGen.mergepoint("foreignKeysInit")
+ initDatabaseMap();
+ }
Added: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/tableConstant.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/tableConstant.vm?rev=1206426&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/tableConstant.vm (added)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/mapBuilder/tableConstant.vm Sat Nov 26 10:59:15 2011
@@ -0,0 +1,26 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+######
+##
+## version $Id: MultiExtendBean.vm 240328 2005-08-26 22:02:48 +0200 (Fr, 26 Aug 2005) tfischer $
+##
+## Generates the constants for the table map in the map builder class
+## This template expects no input.
+##
+ /** the table map for this class */
+ public static final TableMap TABLE;
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org