hammant 01/11/14 10:35:31 Modified: apps/db/src/java/org/apache/avalon/db/functions Function.java apps/db/src/java/org/apache/avalon/db/functions/impl AbstractFunction.java Added: apps/db/src/java/org/apache/avalon/db/data/impl ConcatVarCharColumn.java apps/db/src/java/org/apache/avalon/db/functions/impl ConcatFunction.java Log: Concat and StringConst function Revision Changes Path 1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/ConcatVarCharColumn.java Index: ConcatVarCharColumn.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE file. */ package org.apache.avalon.db.data.impl; import org.apache.avalon.db.data.ValidationException; import org.apache.avalon.db.data.Column; import org.apache.avalon.db.data.Row; import org.apache.avalon.db.functions.Function; import org.apache.avalon.db.functions.impl.ConcatFunction; import org.apache.avalon.db.actions.ActionException; /** * Class ConcatVarCharColumn * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @version $Revision: 1.1 $ */ public class ConcatVarCharColumn extends AbstractColumn { private int mMaxLength; private Column[] mDependantColumns; ConcatFunction mConcatFunction; /** * Constructor ConcatVarCharColumn * * * @param columns * @param name * @param maxLength * */ public ConcatVarCharColumn(Column[] columns, String name, int maxLength) throws ActionException { // TODO other constructors a) without maxsize, b) with generated name super(name,"varchar",String.class.getName()); mMaxLength = maxLength; mConcatFunction = new ConcatFunction(); mConcatFunction.initialize(columns); } public Object getValue(Row row) { // TODO should trim to size? return mConcatFunction.getValue(row); } public void test(Object obj) throws ValidationException { throw new ValidationException("ConcatVarCharColumn is not settable"); } public Object convertFromString(String str) throws ValidationException { test(str); return str; } } 1.5 +4 -3 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.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Function.java 2001/11/14 11:40:51 1.4 +++ Function.java 2001/11/14 18:35:31 1.5 @@ -8,15 +8,16 @@ package org.apache.avalon.db.functions; import org.apache.avalon.db.actions.ActionException; +import org.apache.avalon.db.data.Column; import org.apache.avalon.db.data.Row; /** * Interface Function * * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version * $Revision: 1.4 $ + * @version * $Revision: 1.5 $ */ public interface Function { - void initialize(String[] columns) throws ActionException; - Object evaluate(Row row) throws ActionException; + void initialize(Column[] columns) throws ActionException; + Object getValue(Row row); } 1.2 +9 -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.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AbstractFunction.java 2001/11/13 18:10:20 1.1 +++ AbstractFunction.java 2001/11/14 18:35:31 1.2 @@ -7,14 +7,21 @@ */ package org.apache.avalon.db.functions.impl; +import org.apache.avalon.db.functions.Function; +import org.apache.avalon.db.data.Column; +import org.apache.avalon.db.actions.ActionException; import org.apache.avalon.framework.logger.AbstractLogEnabled; /** * Class AbstractFunction * * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.1 $ + * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> + * @version $Revision: 1.2 $ */ -public class AbstractFunction extends AbstractLogEnabled { - +public abstract class AbstractFunction extends AbstractLogEnabled implements Function { + protected Column[] mColumns; + public void initialize(Column[] columns) throws ActionException { + mColumns = columns; + } } 1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/functions/impl/ConcatFunction.java Index: ConcatFunction.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE file. */ package org.apache.avalon.db.functions.impl; import org.apache.avalon.db.data.Row; /** * Class ConcatFunction * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @version $Revision: 1.1 $ */ public class ConcatFunction extends AbstractFunction { public Object getValue(Row row) { String retVal = ""; for (int i = 0; i < mColumns.length; i++) { retVal += mColumns[i].getValue(row); } return retVal; } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>