hammant 01/11/12 15:09:57 Modified: apps/db/src/java/org/apache/avalon/db/basic/actions BasicCreateQueryable.java BasicCreateTable.java apps/db/src/java/org/apache/avalon/db/basic/parser BasicLXSQLParser.java apps/db/src/java/org/apache/avalon/db/bcel/parser BCELHelper.java BCELLXSQLParser.java BCELSQLParser.java apps/db/src/java/org/apache/avalon/db/data Column.java Added: apps/db/src/java/org/apache/avalon/db/data/impl AbstractColumn.java VarCharColumn.java Removed: apps/db/src/java/org/apache/avalon/db/data/impl DefaultColumn.java Log: start of different column types Revision Changes Path 1.2 +7 -2 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateQueryable.java Index: BasicCreateQueryable.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateQueryable.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- BasicCreateQueryable.java 2001/11/11 13:03:45 1.1 +++ BasicCreateQueryable.java 2001/11/12 23:09:56 1.2 @@ -13,7 +13,8 @@ import org.apache.avalon.db.actions.impl.AbstractAction; import org.apache.avalon.db.data.Column; import org.apache.avalon.db.data.Table; -import org.apache.avalon.db.data.impl.DefaultColumn; +import org.apache.avalon.db.data.impl.AbstractColumn; +import org.apache.avalon.db.data.impl.VarCharColumn; import org.apache.avalon.db.basic.data.BasicTable; import org.apache.avalon.db.services.DatabasePersistor; import org.w3c.dom.Element; @@ -28,7 +29,7 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ public abstract class BasicCreateQueryable extends AbstractAction implements CreateTable { @@ -53,7 +54,11 @@ String fieldName = columnNode.getAttributes().getNamedItem("name").getNodeValue(); String sqlFieldType = columnNode.getAttributes().getNamedItem("type").getNodeValue(); String fieldType = getJavaType(sqlFieldType).toString(); - Column column = new DefaultColumn(fieldName, sqlFieldType, fieldType); + Column column = null; + if (sqlFieldType.equals("varchar")) { + int maxLength = Integer.parseInt(columnNode.getAttributes().getNamedItem("max").getNodeValue()); + column= new VarCharColumn(fieldName, maxLength); + } columns.add(column); } else { // TODO There should be no other element types inside <columns> 1.8 +1 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateTable.java Index: BasicCreateTable.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateTable.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- BasicCreateTable.java 2001/11/11 21:44:47 1.7 +++ BasicCreateTable.java 2001/11/12 23:09:56 1.8 @@ -13,7 +13,7 @@ import org.apache.avalon.db.actions.impl.AbstractAction; import org.apache.avalon.db.data.Column; import org.apache.avalon.db.data.Table; -import org.apache.avalon.db.data.impl.DefaultColumn; +import org.apache.avalon.db.data.impl.AbstractColumn; import org.apache.avalon.db.basic.data.BasicTable; import org.apache.avalon.db.services.DatabasePersistor; import org.w3c.dom.Element; 1.11 +1 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java Index: BasicLXSQLParser.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- BasicLXSQLParser.java 2001/11/11 21:44:47 1.10 +++ BasicLXSQLParser.java 2001/11/12 23:09:56 1.11 @@ -21,7 +21,7 @@ import org.apache.avalon.db.transport.CreateViewRequest; import org.apache.avalon.db.transport.CreateIndexRequest; import org.apache.avalon.db.data.Column; -import org.apache.avalon.db.data.impl.DefaultColumn; +import org.apache.avalon.db.data.impl.AbstractColumn; import org.apache.avalon.db.bcel.actions.AbstractBCELAction; import org.apache.avalon.db.basic.actions.BasicCreateTable; import org.apache.avalon.db.basic.actions.BasicInsert; 1.3 +1 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELHelper.java Index: BCELHelper.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELHelper.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- BCELHelper.java 2001/11/10 21:45:03 1.2 +++ BCELHelper.java 2001/11/12 23:09:56 1.3 @@ -25,7 +25,7 @@ import org.apache.avalon.db.bcel.data.BCELTable; import org.apache.avalon.db.data.Table; import org.apache.avalon.db.data.Column; -import org.apache.avalon.db.data.impl.DefaultColumn; +import org.apache.avalon.db.data.impl.AbstractColumn; import org.apache.avalon.phoenix.Block; import org.apache.avalon.phoenix.BlockContext; import org.apache.avalon.framework.context.Contextualizable; 1.4 +2 -2 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELLXSQLParser.java Index: BCELLXSQLParser.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELLXSQLParser.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BCELLXSQLParser.java 2001/11/11 21:44:47 1.3 +++ BCELLXSQLParser.java 2001/11/12 23:09:56 1.4 @@ -24,7 +24,7 @@ import org.apache.avalon.db.transport.InsertRequest; import org.apache.avalon.db.transport.CreateViewRequest; import org.apache.avalon.db.data.Column; -import org.apache.avalon.db.data.impl.DefaultColumn; +import org.apache.avalon.db.data.impl.AbstractColumn; import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.component.ComponentException; import org.apache.bcel.generic.InstructionFactory; @@ -124,7 +124,7 @@ String fieldName = columnNode.getAttributes().getNamedItem("name").getNodeValue(); String sqlFieldType = columnNode.getAttributes().getNamedItem("type").getNodeValue(); Type fieldType = bcelHelper.getType(sqlFieldType); - Column column = new DefaultColumn(fieldName, sqlFieldType, fieldType.toString()); + Column column = null; // TODO new AbstractColumn(fieldName, sqlFieldType, fieldType.toString()); columns.add(column); bcelHelper.createFieldAndSetter(cp, cg, factory, fieldType, fieldName, tableName); 1.10 +3 -3 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELSQLParser.java Index: BCELSQLParser.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/BCELSQLParser.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- BCELSQLParser.java 2001/11/11 21:44:47 1.9 +++ BCELSQLParser.java 2001/11/12 23:09:56 1.10 @@ -19,7 +19,7 @@ import org.apache.avalon.db.transport.InsertRequest; import org.apache.avalon.db.transport.CreateViewRequest; import org.apache.avalon.db.utils.StringUtils; -import org.apache.avalon.db.data.impl.DefaultColumn; +import org.apache.avalon.db.data.impl.AbstractColumn; import org.apache.avalon.db.data.Column; import org.apache.avalon.db.data.Table; import org.apache.avalon.db.bcel.actions.BCELCreateTable; @@ -40,7 +40,7 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.9 $ + * @version $Revision: 1.10 $ */ public class BCELSQLParser extends AbstractSQLParser { @@ -102,7 +102,7 @@ String fieldName = st2.nextToken(); String sqlFieldType = st2.nextToken(); Type fieldType = bcelHelper.getType(sqlFieldType); - Column column = new DefaultColumn(fieldName, sqlFieldType, fieldType.toString()); + Column column = null; // TODO new AbstractColumn(fieldName, sqlFieldType, fieldType.toString()); columns.add(column); bcelHelper.createFieldAndSetter(cp, cg, factory, fieldType, fieldName, tableName); 1.6 +4 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/Column.java Index: Column.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/Column.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- Column.java 2001/11/09 16:36:44 1.5 +++ Column.java 2001/11/12 23:09:56 1.6 @@ -14,9 +14,12 @@ * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version * $Revision: 1.5 $ + * @version * $Revision: 1.6 $ */ public interface Column extends Nameable { + + void test(Object obj) throws ValidationException; + String getSQLType(); String getJavaType(); int getColumnDisplaySize(); 1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractColumn.java Index: AbstractColumn.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.Table; import org.apache.avalon.db.data.Queryable; import org.apache.avalon.db.data.Column; /** * Class AbstractColumn * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>* * @version $Revision: 1.1 $ */ public abstract class AbstractColumn implements Column { protected String mName; protected String mSqlType; protected String mJavaType; /** * Constructor AbstractColumn * * * @param name * @param sqlType * @param javaType * */ public AbstractColumn(String name, String sqlType, String javaType) { mName = name; mSqlType = sqlType; mJavaType = javaType; } /** * Method getSQLType * * * @return * */ public String getSQLType() { return mSqlType; } /** * Method getName * * * @return * */ public String getName() { return mName; } /** * Method getJavaType * * * @return * */ public String getJavaType() { return mJavaType; } /** methods for the metadata */ public int getColumnDisplaySize() { //ToDo: implementation return 0; } public String getColumnLabel() { return mName; } public String getColumnName() { return mName; } public int getColumnType() { //ToDo: implementation return 0; } public String getColumnTypeName() { return mSqlType; } public int getPrecision() { //ToDo: implementation return 0; } public int getScale() { //ToDo: implementation return 0; } public String getSchemaName() { //ToDo: implementation return null; } public String getCatalogName() { //ToDo: implementation return null; } public String getColumnClassName() { //ToDo: implementation return null; } public String getTableName() { //ToDo: implementation return null; } public boolean isAutoIncrement() { //ToDo: implementation return false; } public boolean isCaseSensitive() { //ToDo: implementation return false; } public boolean isCurrency() { //ToDo: implementation return false; } public boolean isDefinitelyWritable() { //ToDo: implementation return false; } public int isNullable() { //ToDo: implementation return 0; } public boolean isReadOnly() { //ToDo: implementation return false; } public boolean isSearchable() { //ToDo: implementation return false; } public boolean isSigned() { //ToDo: implementation return false; } public boolean isWritable() { //ToDo: implementation return false; } } 1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/VarCharColumn.java Index: VarCharColumn.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.Table; import org.apache.avalon.db.data.Queryable; import org.apache.avalon.db.data.Column; import org.apache.avalon.db.data.ValidationException; /** * Class VarCharColumn * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>* * @version $Revision: 1.1 $ */ public class VarCharColumn extends AbstractColumn { private int mMaxLength; /** * Constructor VarCharColumn * * * @param name * @param maxLength * @param javaType * */ public VarCharColumn(String name, int maxLength) { super(name,"varchar",String.class.getName()); mMaxLength = maxLength; } public void test(Object obj) throws ValidationException { String str = (String) obj; if (str.length() > mMaxLength) { throw new ValidationException("String " + mName + "at is too long at " + str.length()); } } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>