You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2009/02/03 09:29:06 UTC
svn commit: r740245 [2/2] - in /cayenne/main/trunk/framework:
cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/
cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/
cayenne-jdk1.5-unpublished/src/main/java/org/apache/caye...
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextCase.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextCase.java?rev=740245&r1=740244&r2=740245&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextCase.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextCase.java Tue Feb 3 08:29:04 2009
@@ -17,7 +17,6 @@
* under the License.
****************************************************************/
-
package org.apache.cayenne.access;
import java.sql.Connection;
@@ -32,8 +31,6 @@
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.unit.CayenneCase;
-/**
- */
public abstract class DataContextCase extends CayenneCase {
public static final int artistCount = 25;
@@ -52,10 +49,9 @@
}
protected Painting fetchPainting(String name, boolean prefetchArtist) {
- SelectQuery select =
- new SelectQuery(
- Painting.class,
- ExpressionFactory.matchExp("paintingTitle", name));
+ SelectQuery select = new SelectQuery(Painting.class, ExpressionFactory.matchExp(
+ "paintingTitle",
+ name));
if (prefetchArtist) {
select.addPrefetch("toArtist");
}
@@ -65,8 +61,9 @@
}
protected Artist fetchArtist(String name, boolean prefetchPaintings) {
- SelectQuery q =
- new SelectQuery(Artist.class, ExpressionFactory.matchExp("artistName", name));
+ SelectQuery q = new SelectQuery(Artist.class, ExpressionFactory.matchExp(
+ "artistName",
+ name));
if (prefetchPaintings) {
q.addPrefetch("paintingArray");
}
@@ -75,21 +72,19 @@
}
protected ROArtist fetchROArtist(String name) {
- SelectQuery q =
- new SelectQuery(
- ROArtist.class,
- ExpressionFactory.matchExp("artistName", name));
+ SelectQuery q = new SelectQuery(ROArtist.class, ExpressionFactory.matchExp(
+ "artistName",
+ name));
List ats = context.performQuery(q);
return (ats.size() > 0) ? (ROArtist) ats.get(0) : null;
}
/**
- * Temporary workaround for current inability to store dates in test
- * fixture XML files.
+ * Temporary workaround for current inability to store dates in test fixture XML
+ * files.
*/
public void populateExhibits() throws Exception {
- String insertPaint =
- "INSERT INTO EXHIBIT (EXHIBIT_ID, GALLERY_ID, OPENING_DATE, CLOSING_DATE) VALUES (?, ?, ?, ?)";
+ String insertPaint = "INSERT INTO EXHIBIT (EXHIBIT_ID, GALLERY_ID, OPENING_DATE, CLOSING_DATE) VALUES (?, ?, ?, ?)";
Connection conn = getConnection();
@@ -116,10 +111,9 @@
}
/**
- * Helper method that takes one of the artists from the standard
- * dataset (always the same one) and creates a new painting for this artist,
- * committing it to the database. Both Painting and Artist will be cached in current
- * DataContext.
+ * Helper method that takes one of the artists from the standard dataset (always the
+ * same one) and creates a new painting for this artist, committing it to the
+ * database. Both Painting and Artist will be cached in current DataContext.
*/
protected Painting insertPaintingInContext(String paintingName) {
Painting painting = (Painting) context.newObject("Painting");
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/trans/SelectTranslatorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/trans/SelectTranslatorTest.java?rev=740245&r1=740244&r2=740245&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/trans/SelectTranslatorTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/trans/SelectTranslatorTest.java Tue Feb 3 08:29:04 2009
@@ -29,6 +29,7 @@
import org.apache.art.CompoundPainting;
import org.apache.art.Painting;
import org.apache.cayenne.access.jdbc.ColumnDescriptor;
+import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionException;
import org.apache.cayenne.exp.ExpressionFactory;
@@ -333,7 +334,7 @@
int i2 = sql.indexOf("FROM");
assertTrue(sql, i2 > 0);
-
+
assertTrue(sql, sql.indexOf("PAINTING_ID") > 0);
// assert we have one join
@@ -421,6 +422,472 @@
test.test(q);
}
+ public void testCreateSqlStringWithQuoteSqlIdentifiers() throws Exception {
+
+ try {
+ SelectQuery q = new SelectQuery(Artist.class);
+ DbEntity entity = getDbEntity("ARTIST");
+ entity.getDataMap().setQuotingSQLIdentifiers(true);
+ q.addOrdering("dateOfBirth", Ordering.ASC);
+
+ Template test = new Template() {
+
+ @Override
+ void test(SelectTranslator transl) throws Exception {
+ JdbcAdapter adapter = (JdbcAdapter) getAccessStackAdapter()
+ .getAdapter();
+ String charStart = adapter.getIdentifiersStartQuote();
+ String charEnd = adapter.getIdentifiersEndQuote();
+
+ String query = "SELECT "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_NAME"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "DATE_OF_BIRTH"
+ + charEnd
+ + " FROM "
+ + charStart
+ + "ARTIST"
+ + charEnd
+ + " "
+ + charStart
+ + "t0"
+ + charEnd
+ + " ORDER BY "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "DATE_OF_BIRTH"
+ + charEnd;
+
+ String s = transl.createSqlString();
+ assertEquals(query, s);
+ }
+ };
+
+ test.test(q);
+ }
+ finally {
+ DbEntity entity = getDbEntity("ARTIST");
+ entity.getDataMap().setQuotingSQLIdentifiers(false);
+ }
+
+ }
+
+ public void testCreateSqlStringWithQuoteSqlIdentifiers2() throws Exception {
+
+ try {
+ SelectQuery q = new SelectQuery(Artist.class);
+ DbEntity entity = getDbEntity("ARTIST");
+ entity.getDataMap().setQuotingSQLIdentifiers(true);
+ q.setQualifier(ExpressionFactory.greaterExp("dateOfBirth", new Date()));
+ q.andQualifier(ExpressionFactory.lessExp("dateOfBirth", new Date()));
+
+ Template test = new Template() {
+
+ @Override
+ void test(SelectTranslator transl) throws Exception {
+
+ JdbcAdapter adapter = (JdbcAdapter) getAccessStackAdapter()
+ .getAdapter();
+ String charStart = adapter.getIdentifiersStartQuote();
+ String charEnd = adapter.getIdentifiersEndQuote();
+
+ String query = "SELECT "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_NAME"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "DATE_OF_BIRTH"
+ + charEnd
+ + " FROM "
+ + charStart
+ + "ARTIST"
+ + charEnd
+ + " "
+ + charStart
+ + "t0"
+ + charEnd
+ + " WHERE ("
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "DATE_OF_BIRTH"
+ + charEnd
+ + " > ?) AND ("
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "DATE_OF_BIRTH"
+ + charEnd
+ + " < ?)";
+ String s = transl.createSqlString();
+ assertEquals(query, s);
+ }
+ };
+
+ test.test(q);
+ }
+ finally {
+ DbEntity entity = getDbEntity("ARTIST");
+ entity.getDataMap().setQuotingSQLIdentifiers(false);
+ }
+ }
+
+ public void testCreateSqlStringWithQuoteSqlIdentifiers3() throws Exception {
+
+ // query with joint prefetches and other joins
+ // and with QuoteSqlIdentifiers = true
+ try {
+ SelectQuery q = new SelectQuery(Artist.class, Expression
+ .fromString("paintingArray.paintingTitle = 'a'"));
+ q.addPrefetch(Artist.PAINTING_ARRAY_PROPERTY).setSemantics(
+ PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
+
+ DbEntity entity = getDbEntity("ARTIST");
+ entity.getDataMap().setQuotingSQLIdentifiers(true);
+
+ Template test = new Template() {
+
+ @Override
+ void test(SelectTranslator transl) throws Exception {
+ JdbcAdapter adapter = (JdbcAdapter) getAccessStackAdapter()
+ .getAdapter();
+ String charStart = adapter.getIdentifiersStartQuote();
+ String charEnd = adapter.getIdentifiersEndQuote();
+
+ String query = "SELECT DISTINCT "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_NAME"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "DATE_OF_BIRTH"
+ + charEnd
+ + ", "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "ESTIMATED_PRICE"
+ + charEnd
+ + ", "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "PAINTING_DESCRIPTION"
+ + charEnd
+ + ", "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "PAINTING_TITLE"
+ + charEnd
+ + ", "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + ", "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "GALLERY_ID"
+ + charEnd
+ + ", "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "PAINTING_ID"
+ + charEnd
+ + " FROM "
+ + charStart
+ + "ARTIST"
+ + charEnd
+ + " "
+ + charStart
+ + "t0"
+ + charEnd
+ + " LEFT JOIN "
+ + charStart
+ + "PAINTING"
+ + charEnd
+ + " "
+ + charStart
+ + "t1"
+ + charEnd
+ + " ON ("
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + " = "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + ") JOIN "
+ + charStart
+ + "PAINTING"
+ + charEnd
+ + " "
+ + charStart
+ + "t2"
+ + charEnd
+ + " ON ("
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + " = "
+ + charStart
+ + "t2"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + ") WHERE "
+ + charStart
+ + "t2"
+ + charEnd
+ + "."
+ + charStart
+ + "PAINTING_TITLE"
+ + charEnd
+ + " = ?";
+ String s = transl.createSqlString();
+
+ assertEquals(query, s);
+ }
+ };
+
+ test.test(q);
+ }
+ finally {
+ DbEntity entity = getDbEntity("ARTIST");
+ entity.getDataMap().setQuotingSQLIdentifiers(false);
+ }
+ }
+
+ public void testCreateSqlStringWithQuoteSqlIdentifiers4() throws Exception {
+
+ // query with to-one joint prefetches
+ // and with QuoteSqlIdentifiers = true
+ try {
+ SelectQuery q = new SelectQuery(Painting.class);
+ q.addPrefetch(Painting.TO_ARTIST_PROPERTY).setSemantics(
+ PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
+
+ DbEntity entity = getDbEntity("PAINTING");
+ entity.getDataMap().setQuotingSQLIdentifiers(true);
+
+ Template test = new Template() {
+
+ @Override
+ void test(SelectTranslator transl) throws Exception {
+ JdbcAdapter adapter = (JdbcAdapter) getAccessStackAdapter()
+ .getAdapter();
+ String charStart = adapter.getIdentifiersStartQuote();
+ String charEnd = adapter.getIdentifiersEndQuote();
+
+ String query = "SELECT "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "PAINTING_TITLE"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "PAINTING_DESCRIPTION"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ESTIMATED_PRICE"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "GALLERY_ID"
+ + charEnd
+ + ", "
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "PAINTING_ID"
+ + charEnd
+ + ", "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_NAME"
+ + charEnd
+ + ", "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "DATE_OF_BIRTH"
+ + charEnd
+ + ", "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + " FROM "
+ + charStart
+ + "PAINTING"
+ + charEnd
+ + " "
+ + charStart
+ + "t0"
+ + charEnd
+ + " LEFT JOIN "
+ + charStart
+ + "ARTIST"
+ + charEnd
+ + " "
+ + charStart
+ + "t1"
+ + charEnd
+ + " ON ("
+ + charStart
+ + "t0"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + " = "
+ + charStart
+ + "t1"
+ + charEnd
+ + "."
+ + charStart
+ + "ARTIST_ID"
+ + charEnd
+ + ")";
+ String s = transl.createSqlString();
+
+ assertEquals(s, query);
+ }
+ };
+
+ test.test(q);
+ }
+ finally {
+ DbEntity entity = getDbEntity("PAINTING");
+ entity.getDataMap().setQuotingSQLIdentifiers(false);
+ }
+ }
+
/**
* Tests columns generated for a simple object query.
*/
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/JdbcAdapterTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/JdbcAdapterTest.java?rev=740245&r1=740244&r2=740245&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/JdbcAdapterTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/JdbcAdapterTest.java Tue Feb 3 08:29:04 2009
@@ -21,7 +21,13 @@
import java.sql.Types;
+import org.apache.cayenne.dba.mysql.MySQLAdapter;
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.DbAttribute;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbKeyGenerator;
import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.MySQLStackAdapter;
public class JdbcAdapterTest extends CayenneCase {
@@ -46,4 +52,27 @@
assertEquals(1, types.length);
assertEquals(TypesMapping.getSqlNameByType(type), types[0]);
}
+
+ public void testCreateTableQuoteSqlIdentifiers() {
+
+ DbEntity entity = new DbEntity();
+ DbAttribute attr = new DbAttribute();
+ attr.setName("name column");
+ attr.setType(1);
+ entity.addAttribute(attr);
+
+ DbKeyGenerator id = new DbKeyGenerator();
+ entity.setPrimaryKeyGenerator(id);
+
+ DataMap dm = new DataMap();
+ dm.setQuotingSQLIdentifiers(true);
+ entity.setDataMap(dm);
+ entity.setName("name table");
+
+ if(getAccessStackAdapter().getAdapter() instanceof MySQLAdapter){
+ MySQLAdapter adaptMySQL = (MySQLAdapter) getAccessStackAdapter().getAdapter();
+ String str = "CREATE TABLE `name table` (`name column` CHAR NULL) ENGINE=InnoDB";
+ assertEquals(str, adaptMySQL.createTable(entity));
+ }
+ }
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/MockDbAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/MockDbAdapter.java?rev=740245&r1=740244&r2=740245&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/MockDbAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/MockDbAdapter.java Tue Feb 3 08:29:04 2009
@@ -145,5 +145,11 @@
public void createTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column) {
}
-
+
+ public String getIdentifiersStartQuote(){
+ return "\"";
+ }
+ public String getIdentifiersEndQuote(){
+ return "\"";
+ }
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DataMapTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DataMapTest.java?rev=740245&r1=740244&r2=740245&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DataMapTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DataMapTest.java Tue Feb 3 08:29:04 2009
@@ -19,6 +19,8 @@
package org.apache.cayenne.map;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -26,11 +28,13 @@
import junit.framework.TestCase;
import org.apache.cayenne.project.NamedObjectFactory;
+import org.apache.cayenne.project.Project;
import org.apache.cayenne.query.AbstractQuery;
import org.apache.cayenne.query.MockAbstractQuery;
import org.apache.cayenne.query.Query;
import org.apache.cayenne.remote.hessian.service.HessianUtil;
import org.apache.cayenne.util.Util;
+import org.apache.cayenne.util.XMLEncoder;
/**
* DataMap unit tests.
@@ -398,5 +402,33 @@
assertEquals(expectedNames[i], proc.getName());
}
}
+
+ public void testQuoteSqlIdentifiersEcodeAsXML(){
+ DataMap map = new DataMap("aaa");
+ map.setQuotingSQLIdentifiers(true);
+ StringWriter w = new StringWriter();
+ XMLEncoder e = new XMLEncoder(new PrintWriter(w));
+
+ StringBuffer s = new StringBuffer("<data-map project-version=\"");
+ s.append(String.valueOf(Project.CURRENT_PROJECT_VERSION));
+ s.append("\">\n");
+ s.append("<property name=\"quoteSqlIdentifiers\" value=\"true\"/>\n");
+ s.append("</data-map>\n");
+
+ map.encodeAsXML(e);
+ assertEquals(w.getBuffer().toString(), s.toString());
+
+ map.setQuotingSQLIdentifiers(false);
+ StringWriter w2 = new StringWriter();
+ XMLEncoder e2 = new XMLEncoder(new PrintWriter(w2));
+
+ StringBuffer s2 = new StringBuffer("<data-map project-version=\"");
+ s2.append(String.valueOf(Project.CURRENT_PROJECT_VERSION));
+ s2.append("\">\n");
+ s2.append("</data-map>\n");
+ map.encodeAsXML(e2);
+ assertEquals(w2.getBuffer().toString(), s2.toString());
+
+ }
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/AbstractAccessStack.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/AbstractAccessStack.java?rev=740245&r1=740244&r2=740245&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/AbstractAccessStack.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/AbstractAccessStack.java Tue Feb 3 08:29:04 2009
@@ -46,11 +46,10 @@
/**
* Defines a set of algorithms useful for a generic AccessStack.
- *
*/
public abstract class AbstractAccessStack {
- private static Log logObj = LogFactory.getLog(AbstractAccessStack.class);
+ private static Log logger = LogFactory.getLog(AbstractAccessStack.class);
// hardcoded dependent entities that should be excluded
// if LOBs are not supported
@@ -203,11 +202,11 @@
for (String dropSql : node.getAdapter().dropTableStatements(ent)) {
try {
- logObj.info(dropSql);
+ logger.info(dropSql);
stmt.execute(dropSql);
}
catch (SQLException sqe) {
- logObj.warn(
+ logger.warn(
"Can't drop table " + ent.getName() + ", ignoring...",
sqe);
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapView.java?rev=740245&r1=740244&r2=740245&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapView.java Tue Feb 3 08:29:04 2009
@@ -23,7 +23,6 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
-import java.util.Iterator;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
@@ -71,10 +70,11 @@
protected TextAdapter name;
protected JLabel location;
protected JComboBox nodeSelector;
+ protected JCheckBox defaultLockType;
protected TextAdapter defaultSchema;
protected TextAdapter defaultPackage;
protected TextAdapter defaultSuperclass;
- protected JCheckBox defaultLockType;
+ protected JCheckBox quoteSQLIdentifiers;
protected JButton updateDefaultSchema;
protected JButton updateDefaultPackage;
@@ -117,6 +117,8 @@
setDefaultSchema(text);
}
};
+
+ quoteSQLIdentifiers = new JCheckBox();
updateDefaultPackage = new JButton("Update...");
defaultPackage = new TextAdapter(new JTextField()) {
@@ -165,6 +167,7 @@
builder.append("DataMap Name:", name.getComponent(), 3);
builder.append("File:", location, 3);
builder.append("DataNode:", nodeSelector, 3);
+ builder.append("Quote SQL Identifiers:", quoteSQLIdentifiers, 3);
builder.appendSeparator("Entity Defaults");
builder.append("DB Schema:", defaultSchema.getComponent(), updateDefaultSchema);
@@ -210,6 +213,13 @@
setDataNode();
}
});
+
+ quoteSQLIdentifiers.addActionListener(new ActionListener(){
+
+ public void actionPerformed(ActionEvent e) {
+ setQuoteSQLIdentifiers(quoteSQLIdentifiers.isSelected());
+ }
+ });
defaultLockType.addActionListener(new ActionListener() {
@@ -279,6 +289,7 @@
String locationText = map.getLocation();
location.setText((locationText != null) ? locationText : "(no file)");
+ quoteSQLIdentifiers.setSelected(map.isQuotingSQLIdentifiers());
// rebuild data node list
Object nodes[] = eventController.getCurrentDataDomain().getDataNodes().toArray();
@@ -357,6 +368,20 @@
eventController.fireDataMapEvent(new DataMapEvent(this, dataMap));
}
}
+
+ void setQuoteSQLIdentifiers(boolean flag) {
+ DataMap dataMap = eventController.getCurrentDataMap();
+
+ if (dataMap == null) {
+ return;
+ }
+
+ if (dataMap.isQuotingSQLIdentifiers() != flag) {
+ dataMap.setQuotingSQLIdentifiers(flag);
+
+ eventController.fireDataMapEvent(new DataMapEvent(this, dataMap));
+ }
+ }
void setDefaultPackage(String newDefaultPackage) {
DataMap dataMap = eventController.getCurrentDataMap();