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]>

Reply via email to