You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by jg...@apache.org on 2009/02/04 23:14:44 UTC
svn commit: r740917 - in /ibatis/trunk/java/tools/ibator/core: build/ doc/
htmldoc/ src/org/apache/ibatis/ibator/api/dom/xml/
src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/
Author: jgbutler
Date: Wed Feb 4 22:14:44 2009
New Revision: 740917
URL: http://svn.apache.org/viewvc?rev=740917&view=rev
Log:
[ibator] Fix for IBATIS-579 - don't allow column names to break across lines in generated XML
Modified:
ibatis/trunk/java/tools/ibator/core/build/version.properties
ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt
ibatis/trunk/java/tools/ibator/core/htmldoc/whatsNew.html
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/dom/xml/TextElement.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BaseColumnListElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BlobColumnListElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/InsertElementGenerator.java
Modified: ibatis/trunk/java/tools/ibator/core/build/version.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/build/version.properties?rev=740917&r1=740916&r2=740917&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/build/version.properties (original)
+++ ibatis/trunk/java/tools/ibator/core/build/version.properties Wed Feb 4 22:14:44 2009
@@ -1,4 +1,4 @@
#Ibator build version info
-#Tue Feb 03 20:33:04 CST 2009
+#Wed Feb 04 16:05:31 CST 2009
version=1.2.2
-buildNum=703
+buildNum=707
Modified: ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt?rev=740917&r1=740916&r2=740917&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt (original)
+++ ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt Wed Feb 4 22:14:44 2009
@@ -3,6 +3,8 @@
Bugs:
1. Fixed NPE when no DAOs are generated
+2. Fixed IBATIS-579 - don't allow column names with spaces to break
+ across lines
Enhancements:
1. IBATIS-569 - Make it easier to override IbatorRules in plugins
Modified: ibatis/trunk/java/tools/ibator/core/htmldoc/whatsNew.html
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/htmldoc/whatsNew.html?rev=740917&r1=740916&r2=740917&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/htmldoc/whatsNew.html (original)
+++ ibatis/trunk/java/tools/ibator/core/htmldoc/whatsNew.html Wed Feb 4 22:14:44 2009
@@ -20,6 +20,8 @@
<h3>Bugs Fixed</h3>
<ul>
<li>NPE when no DAOs are generated.</li>
+ <li>IBATIS-579 - Don't allow column names that contain spaces to
+ break across lines in generated XML.</li>
</ul>
<h3>Enhancements</h3>
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/dom/xml/TextElement.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/dom/xml/TextElement.java?rev=740917&r1=740916&r2=740917&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/dom/xml/TextElement.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/dom/xml/TextElement.java Wed Feb 4 22:14:44 2009
@@ -15,11 +15,6 @@
*/
package org.apache.ibatis.ibator.api.dom.xml;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
import org.apache.ibatis.ibator.api.dom.OutputUtilities;
/**
@@ -43,65 +38,9 @@
*/
@Override
public String getFormattedContent(int indentLevel) {
- return formatLongString(content, 100, indentLevel);
- }
-
- /**
- * Utility method. Takes a long string and breaks it into multiple lines of
- * whose width is no longer that the specified maximum line length.
- *
- * @param s
- * the String to be formatted
- * @param maxLineLength
- * the maximum line length
- * @param indentLevel
- * the required indent level of all lines
- * @return the formatted String
- */
- private static String formatLongString(String s, int maxLineLength,
- int indentLevel) {
-
StringBuilder sb = new StringBuilder();
OutputUtilities.xmlIndent(sb, indentLevel);
- sb.append(s);
- if (sb.length() <= maxLineLength || s.indexOf(' ') == -1) {
- // line is short, or has no spaces - return as is
- return sb.toString();
- }
-
- List<String> lines = new ArrayList<String>();
- StringTokenizer st = new StringTokenizer(s, " "); //$NON-NLS-1$
-
- sb.setLength(0);
- OutputUtilities.xmlIndent(sb, indentLevel);
- sb.append(st.nextToken());
- while (st.hasMoreTokens()) {
- String token = st.nextToken();
-
- if (sb.length() + token.length() + 1 > maxLineLength) {
- lines.add(sb.toString());
- sb.setLength(0);
- OutputUtilities.xmlIndent(sb, indentLevel + 1);
- sb.append(token);
- } else {
- sb.append(' ');
- sb.append(token);
- }
- }
-
- if (sb.toString().trim().length() > 0) {
- lines.add(sb.toString());
- }
-
- sb.setLength(0);
- Iterator<String> iter = lines.iterator();
- while (iter.hasNext()) {
- sb.append(iter.next());
- if (iter.hasNext()) {
- OutputUtilities.newLine(sb);
- }
- }
-
+ sb.append(content);
return sb.toString();
}
}
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BaseColumnListElementGenerator.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BaseColumnListElementGenerator.java?rev=740917&r1=740916&r2=740917&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BaseColumnListElementGenerator.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BaseColumnListElementGenerator.java Wed Feb 4 22:14:44 2009
@@ -15,6 +15,8 @@
*/
package org.apache.ibatis.ibator.generator.ibatis2.sqlmap.elements;
+import java.util.Iterator;
+
import org.apache.ibatis.ibator.api.IntrospectedColumn;
import org.apache.ibatis.ibator.api.dom.xml.Attribute;
import org.apache.ibatis.ibator.api.dom.xml.TextElement;
@@ -41,21 +43,25 @@
ibatorContext.getCommentGenerator().addComment(answer);
- boolean comma = false;
StringBuilder sb = new StringBuilder();
-
- for (IntrospectedColumn introspectedColumn : introspectedTable.getNonBLOBColumns()) {
- if (comma) {
+ Iterator<IntrospectedColumn> iter = introspectedTable.getNonBLOBColumns().iterator();
+ while (iter.hasNext()) {
+ sb.append(iter.next().getSelectListPhrase());
+
+ if (iter.hasNext()) {
sb.append(", "); //$NON-NLS-1$
- } else {
- comma = true;
}
+
+ if (sb.length() > 80) {
+ answer.addElement(new TextElement(sb.toString()));
+ sb.setLength(0);
+ }
+ }
- sb.append(introspectedColumn.getSelectListPhrase());
+ if (sb.length() > 0) {
+ answer.addElement((new TextElement(sb.toString())));
}
- answer.addElement((new TextElement(sb.toString())));
-
if (ibatorContext.getPlugins().sqlMapBaseColumnListElementGenerated(answer, introspectedTable)) {
parentElement.addElement(answer);
}
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BlobColumnListElementGenerator.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BlobColumnListElementGenerator.java?rev=740917&r1=740916&r2=740917&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BlobColumnListElementGenerator.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/BlobColumnListElementGenerator.java Wed Feb 4 22:14:44 2009
@@ -15,6 +15,8 @@
*/
package org.apache.ibatis.ibator.generator.ibatis2.sqlmap.elements;
+import java.util.Iterator;
+
import org.apache.ibatis.ibator.api.IntrospectedColumn;
import org.apache.ibatis.ibator.api.dom.xml.Attribute;
import org.apache.ibatis.ibator.api.dom.xml.TextElement;
@@ -41,20 +43,25 @@
ibatorContext.getCommentGenerator().addComment(answer);
- boolean comma = false;
StringBuilder sb = new StringBuilder();
- for (IntrospectedColumn introspectedColumn : introspectedTable.getBLOBColumns()) {
- if (comma) {
+ Iterator<IntrospectedColumn> iter = introspectedTable.getBLOBColumns().iterator();
+ while (iter.hasNext()) {
+ sb.append(iter.next().getSelectListPhrase());
+
+ if (iter.hasNext()) {
sb.append(", "); //$NON-NLS-1$
- } else {
- comma = true;
}
+
+ if (sb.length() > 80) {
+ answer.addElement(new TextElement(sb.toString()));
+ sb.setLength(0);
+ }
+ }
- sb.append(introspectedColumn.getSelectListPhrase());
+ if (sb.length() > 0) {
+ answer.addElement((new TextElement(sb.toString())));
}
-
- answer.addElement((new TextElement(sb.toString())));
if (ibatorContext.getPlugins().sqlMapBlobColumnListElementGenerated(answer, introspectedTable)) {
parentElement.addElement(answer);
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/InsertElementGenerator.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/InsertElementGenerator.java?rev=740917&r1=740916&r2=740917&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/InsertElementGenerator.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/InsertElementGenerator.java Wed Feb 4 22:14:44 2009
@@ -15,8 +15,13 @@
*/
package org.apache.ibatis.ibator.generator.ibatis2.sqlmap.elements;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.ibatis.ibator.api.FullyQualifiedTable;
import org.apache.ibatis.ibator.api.IntrospectedColumn;
+import org.apache.ibatis.ibator.api.dom.OutputUtilities;
import org.apache.ibatis.ibator.api.dom.java.FullyQualifiedJavaType;
import org.apache.ibatis.ibator.api.dom.xml.Attribute;
import org.apache.ibatis.ibator.api.dom.xml.TextElement;
@@ -71,29 +76,43 @@
valuesClause.append("values ("); //$NON-NLS-1$
- boolean comma = false;
- for (IntrospectedColumn introspectedColumn : introspectedTable.getAllColumns()) {
+ List<String> valuesClauses = new ArrayList<String>();
+ Iterator<IntrospectedColumn> iter = introspectedTable.getAllColumns().iterator();
+ while (iter.hasNext()) {
+ IntrospectedColumn introspectedColumn = iter.next();
if (introspectedColumn.isIdentity()) {
// cannot set values on identity fields
continue;
}
-
- if (comma) {
+
+ insertClause.append(introspectedColumn.getEscapedColumnName());
+ valuesClause.append(introspectedColumn.getIbatisFormattedParameterClause());
+ if (iter.hasNext()) {
insertClause.append(", "); //$NON-NLS-1$
valuesClause.append(", "); //$NON-NLS-1$
- } else {
- comma = true; // turn on comma for next time
}
-
- insertClause.append(introspectedColumn.getEscapedColumnName());
- valuesClause.append(introspectedColumn.getIbatisFormattedParameterClause());
+
+ if (valuesClause.length() > 80) {
+ answer.addElement(new TextElement(insertClause.toString()));
+ insertClause.setLength(0);
+ OutputUtilities.xmlIndent(insertClause, 1);
+
+ valuesClauses.add(valuesClause.toString());
+ valuesClause.setLength(0);
+ OutputUtilities.xmlIndent(valuesClause, 1);
+ }
}
+
insertClause.append(')');
- valuesClause.append(')');
-
answer.addElement(new TextElement(insertClause.toString()));
- answer.addElement(new TextElement(valuesClause.toString()));
-
+
+ valuesClause.append(')');
+ valuesClauses.add(valuesClause.toString());
+
+ for (String clause : valuesClauses) {
+ answer.addElement(new TextElement(clause));
+ }
+
if (gk != null && !gk.isBeforeInsert()) {
IntrospectedColumn introspectedColumn = introspectedTable.getColumn(gk.getColumn());
// if the column is null, then it's a configuration error. The