You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by jr...@apache.org on 2010/01/19 23:33:11 UTC
svn commit: r900985 - in /openjpa/trunk:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/
openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/
openjpa-lib/src/test/java/org/a...
Author: jrbauer
Date: Tue Jan 19 22:33:11 2010
New Revision: 900985
URL: http://svn.apache.org/viewvc?rev=900985&view=rev
Log:
OPENJPA-1115 Eliminate alias conversion on configurations that do not require conversion.
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifierUtilImpl.java
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DefaultIdentifierConfiguration.java
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierConfiguration.java
openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierUtilImpl.java
openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/IdConfigurationTestImpl.java
openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/NewIdConfigurationTestImpl.java
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifierUtilImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifierUtilImpl.java?rev=900985&r1=900984&r2=900985&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifierUtilImpl.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifierUtilImpl.java Tue Jan 19 22:33:11 2010
@@ -419,6 +419,10 @@
* Converts a column alias to use the appropriate delimiters
*/
public String convertAlias(String alias) {
+ if (!needsConversion(getIdentifierConfiguration())) {
+ return alias;
+ }
+
String[] names = Normalizer.splitName(alias);
if (names.length <= 1) {
// Nothing to split
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DefaultIdentifierConfiguration.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DefaultIdentifierConfiguration.java?rev=900985&r1=900984&r2=900985&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DefaultIdentifierConfiguration.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DefaultIdentifierConfiguration.java Tue Jan 19 22:33:11 2010
@@ -29,6 +29,7 @@
private DBIdentifierRule normalizingRule = new DBIdentifierRule();
private Map<String, IdentifierRule> normalizingRules = new HashMap<String, IdentifierRule>();
+ private final String conversionKey = getLeadingDelimiter() + getIdentifierDelimiter() + getTrailingDelimiter();
public DefaultIdentifierConfiguration() {
normalizingRules.put(IdentifierRule.DEFAULT_RULE, normalizingRule);
@@ -78,4 +79,8 @@
public boolean getSupportsDelimitedIdentifiers() {
return true;
}
+
+ public String getConversionKey() {
+ return conversionKey;
+ }
}
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?rev=900985&r1=900984&r2=900985&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java Tue Jan 19 22:33:11 2010
@@ -373,6 +373,7 @@
public String delimitedCase = SCHEMA_CASE_PRESERVE;
public String catalogSeparator = ".";
private String defaultSchemaName = null;
+ private String conversionKey = null;
// Naming utility and naming rules
private DBIdentifierUtil namingUtil = null;
@@ -5361,4 +5362,12 @@
public String getDefaultSchemaName() {
return defaultSchemaName;
}
+
+ public String getConversionKey() {
+ if (conversionKey == null) {
+ conversionKey = getLeadingDelimiter() + getIdentifierDelimiter() +
+ getTrailingDelimiter();
+ }
+ return conversionKey;
+ }
}
Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierConfiguration.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierConfiguration.java?rev=900985&r1=900984&r2=900985&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierConfiguration.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierConfiguration.java Tue Jan 19 22:33:11 2010
@@ -86,4 +86,13 @@
* @return upper, lower, or preserve
*/
public String getSchemaCase();
+
+ /**
+ * Returns a key that can be used to determine whether conversion
+ * should take place. Id configurations should create a key unique
+ * to their configuration. The typical key is:
+ * leading delimiter (") + name separator(.) + trailing delimiter(")
+ * @return
+ */
+ public String getConversionKey();
}
Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierUtilImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierUtilImpl.java?rev=900985&r1=900984&r2=900985&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierUtilImpl.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierUtilImpl.java Tue Jan 19 22:33:11 2010
@@ -503,10 +503,8 @@
}
- private boolean needsConversion(IdentifierConfiguration config) {
- return !(config.getLeadingDelimiter().equals(getIdentifierConfiguration().getLeadingDelimiter()) &&
- config.getTrailingDelimiter().equals(getIdentifierConfiguration().getTrailingDelimiter()) &&
- config.getIdentifierDelimiter().equals(getIdentifierConfiguration().getIdentifierDelimiter()));
+ protected boolean needsConversion(IdentifierConfiguration config) {
+ return !(config.getConversionKey().equals(getIdentifierConfiguration().getConversionKey()));
}
private IdentifierRule[] getNamingRules(String[] rules) {
Modified: openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/IdConfigurationTestImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/IdConfigurationTestImpl.java?rev=900985&r1=900984&r2=900985&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/IdConfigurationTestImpl.java (original)
+++ openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/IdConfigurationTestImpl.java Tue Jan 19 22:33:11 2010
@@ -28,7 +28,8 @@
public class IdConfigurationTestImpl implements IdentifierConfiguration {
Map<String, IdentifierRule> _rules = new HashMap<String, IdentifierRule>();
-
+ private final String conversionKey = getLeadingDelimiter() + getIdentifierDelimiter() + getTrailingDelimiter();
+
public IdConfigurationTestImpl() {
_rules.put("DEFAULT", _defRule);
}
@@ -84,4 +85,7 @@
return true;
}
+ public String getConversionKey() {
+ return conversionKey;
+ }
}
Modified: openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/NewIdConfigurationTestImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/NewIdConfigurationTestImpl.java?rev=900985&r1=900984&r2=900985&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/NewIdConfigurationTestImpl.java (original)
+++ openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/NewIdConfigurationTestImpl.java Tue Jan 19 22:33:11 2010
@@ -28,7 +28,8 @@
public class NewIdConfigurationTestImpl implements IdentifierConfiguration {
Map<String, IdentifierRule> _rules = new HashMap<String, IdentifierRule>();
-
+ private final String conversionKey = getLeadingDelimiter() + getIdentifierDelimiter() + getTrailingDelimiter();
+
public NewIdConfigurationTestImpl() {
_rules.put("DEFAULT", _defRule);
}
@@ -84,4 +85,7 @@
return true;
}
+ public String getConversionKey() {
+ return conversionKey;
+ }
}