hammant 01/12/18 06:24:53
Modified: apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql
BasicLXSQLSelectSimpleHandler.java
apps/db/src/java/org/apache/avalon/db/functions
Function.java
apps/db/src/java/org/apache/avalon/db/functions/impl
AbstractFunction.java LowerCaseStringFunction.java
UpperCaseStringFunction.java
apps/db/src/scripts/lxsql Test2.script
Log:
lower and uppercase funcitons working for queries.
Revision Changes Path
1.10 +13 -6
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLSelectSimpleHandler.java
Index: BasicLXSQLSelectSimpleHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLSelectSimpleHandler.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- BasicLXSQLSelectSimpleHandler.java 2001/12/18 13:55:05 1.9
+++ BasicLXSQLSelectSimpleHandler.java 2001/12/18 14:24:53 1.10
@@ -25,6 +25,10 @@
import org.apache.avalon.db.data.impl.DefaultStringConstantColumn;
import org.apache.avalon.db.functions.impl.ConcatFunction;
import org.apache.avalon.db.functions.impl.TrimStringFunction;
+import org.apache.avalon.db.functions.impl.LowerCaseStringFunction;
+import org.apache.avalon.db.functions.impl.UpperCaseStringFunction;
+import org.apache.avalon.db.functions.Function;
+import org.apache.avalon.db.functions.StringFunction;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -40,7 +44,7 @@
*
* @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.9 $
+ * @version $Revision: 1.10 $
*/
public class BasicLXSQLSelectSimpleHandler extends BasicLXSQLHandler {
@@ -178,7 +182,11 @@
} else if (nodeName.equals("const")) {
return getSelectColumnConst(queryable, elem);
} else if (nodeName.equals("trim")) {
- return getSelectColumnTrim(queryable, elem);
+ return getSelectColumnFromStringFunction(queryable, elem, new
TrimStringFunction());
+ } else if (nodeName.equals("lowercase")) {
+ return getSelectColumnFromStringFunction(queryable, elem, new
LowerCaseStringFunction());
+ } else if (nodeName.equals("uppercase")) {
+ return getSelectColumnFromStringFunction(queryable, elem, new
UpperCaseStringFunction());
} else {
throw new ActionException("Unknown node type '"+nodeName+"'
under 'columns'");
}
@@ -222,7 +230,7 @@
return new DefaultStringConstantColumn("TODO",value);
}
- private Column getSelectColumnTrim(AbstractQueryable queryable, Element
trimElem) throws ActionException {
+ private Column getSelectColumnFromStringFunction(AbstractQueryable
queryable, Element trimElem, StringFunction function) throws ActionException {
String as = trimElem.getAttribute("as");
// TODO as might be missing
//return queryable.getColumn(name, true);
@@ -243,9 +251,8 @@
if (colVec.size() > 1) {
throw new ActionException("trim can only have one child
column");
}
- TrimStringFunction tsf = new TrimStringFunction();
- tsf.initialize(new Column[] { (Column) colVec.elementAt(0) });
- return new DefaultContrivedStringFunctionColumn(as,tsf);
+ function.initialize((Column) colVec.elementAt(0));
+ return new DefaultContrivedStringFunctionColumn(as,function);
} else {
throw new ActionException("trim must have child column");
}
1.7 +3 -2
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/functions/Function.java
Index: Function.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/functions/Function.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Function.java 2001/11/17 08:52:56 1.6
+++ Function.java 2001/12/18 14:24:53 1.7
@@ -17,9 +17,10 @@
*
* @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version * $Revision: 1.6 $
+ * @version * $Revision: 1.7 $
*/
public interface Function {
- void initialize(Column[] columns) throws ActionException;
+ void initialize(Column columns);
+ void initialize(Column[] columns);
Object getValue(Row row);
}
1.4 +5 -2
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/functions/impl/AbstractFunction.java
Index: AbstractFunction.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/functions/impl/AbstractFunction.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractFunction.java 2001/11/17 08:52:57 1.3
+++ AbstractFunction.java 2001/12/18 14:24:53 1.4
@@ -17,11 +17,14 @@
* Class AbstractFunction
*
* @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public abstract class AbstractFunction extends AbstractLogEnabled implements
Function {
protected Column[] mColumns;
- public void initialize(Column[] columns) throws ActionException {
+ public void initialize(Column[] columns) {
mColumns = columns;
+ }
+ public void initialize(Column column) {
+ mColumns = new Column[] { column };
}
}
1.4 +5 -1
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/functions/impl/LowerCaseStringFunction.java
Index: LowerCaseStringFunction.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/functions/impl/LowerCaseStringFunction.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- LowerCaseStringFunction.java 2001/12/01 10:49:44 1.3
+++ LowerCaseStringFunction.java 2001/12/18 14:24:53 1.4
@@ -17,11 +17,15 @@
* Class LowerCaseStringFunction
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class LowerCaseStringFunction extends AbstractStringFunction {
private final Locale mLocale;
+
+ public LowerCaseStringFunction() {
+ this(Locale.getDefault());
+ }
public LowerCaseStringFunction(Locale locale) {
mLocale = locale;
1.4 +5 -1
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/functions/impl/UpperCaseStringFunction.java
Index: UpperCaseStringFunction.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/functions/impl/UpperCaseStringFunction.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- UpperCaseStringFunction.java 2001/12/01 10:49:44 1.3
+++ UpperCaseStringFunction.java 2001/12/18 14:24:53 1.4
@@ -17,11 +17,15 @@
* Class UpperCaseStringFunction
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class UpperCaseStringFunction extends AbstractStringFunction {
private final Locale mLocale;
+
+ public UpperCaseStringFunction() {
+ this(Locale.getDefault());
+ }
public UpperCaseStringFunction(Locale locale) {
mLocale = locale;
1.2 +6 -2
jakarta-avalon-cornerstone/apps/db/src/scripts/lxsql/Test2.script
Index: Test2.script
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/scripts/lxsql/Test2.script,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Test2.script 2001/12/18 13:55:05 1.1
+++ Test2.script 2001/12/18 14:24:53 1.2
@@ -7,9 +7,13 @@
<trim as="fs">
<concat as="tmp1">
<concat as="tmp2">
- <column name="forename"/>
+ <uppercase>
+ <column name="forename"/>
+ </uppercase>
<const value=" "/>
- <column name="surname"/>
+ <lowercase>
+ <column name="surname"/>
+ </lowercase>
</concat>
<const value=" "/>
</concat>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>