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 2007/06/08 22:52:52 UTC
svn commit: r545617 -
/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplate.java
Author: aadamchik
Date: Fri Jun 8 13:52:51 2007
New Revision: 545617
URL: http://svn.apache.org/viewvc?view=rev&rev=545617
Log:
CAY-800: SQLTemplate improvement
modeler support
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplate.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplate.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplate.java?view=diff&rev=545617&r1=545616&r2=545617
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplate.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplate.java Fri Jun 8 13:52:51 2007
@@ -48,7 +48,7 @@
* </p>
*
* <pre>
- * SELECT ID, NAME FROM SOME_TABLE WHERE NAME LIKE $a
+ * SELECT ID, NAME FROM SOME_TABLE WHERE NAME LIKE $a
* </pre>
*
* <p>
@@ -75,6 +75,8 @@
public class SQLTemplate extends AbstractQuery implements ParameterizedQuery,
XMLSerializable {
+ static final String COLUMN_NAME_CAPITALIZATION_PROPERTY = "cayenne.SQLTemplate.columnNameCapitalization";
+
/**
* @since 3.0
*/
@@ -218,6 +220,12 @@
selectInfo.encodeAsXML(encoder);
+ if (getColumnNamesCapitalization() != null) {
+ encoder.printProperty(
+ COLUMN_NAME_CAPITALIZATION_PROPERTY,
+ getColumnNamesCapitalization());
+ }
+
// encode default SQL
if (defaultTemplate != null) {
encoder.print("<sql><![CDATA[");
@@ -260,6 +268,16 @@
public void initWithProperties(Map properties) {
// must init defaults even if properties are empty
selectInfo.initWithProperties(properties);
+
+ if (properties == null) {
+ properties = Collections.EMPTY_MAP;
+ }
+
+ Object columnNamesCapitalization = properties
+ .get(COLUMN_NAME_CAPITALIZATION_PROPERTY);
+ this.columnNamesCapitalization = (columnNamesCapitalization != null)
+ ? columnNamesCapitalization.toString()
+ : null;
}
/**
@@ -566,7 +584,8 @@
* across database engines that can have varying default capitalization. Default
* (null) value indicates that column names provided in result set are used unchanged.
* <p/> Note that while a non-default setting is useful for queries that do not rely
- * on a #result directive to describe columns, it works for all SQLTemplates the same way.
+ * on a #result directive to describe columns, it works for all SQLTemplates the same
+ * way.
*
* @param columnNameCapitalization Can be null of one of
* {@link #LOWERCASE_COLUMN_NAMES} or {@link #UPPERCASE_COLUMN_NAMES}.