/** * Copyright (c) 2004-2011 Wang Jinbao(Julian Wong), http://www.ralasafe.com * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php */ package org.ralasafe.db; import java.util.HashMap; import java.util.Map; /** * A sql table definition. * * @author back * */ public class Table { /** internal id, used only for ralasafe */ private int id; private String name; private Column[] idColumns; private Column[] uniqueColumns; private Column[] columns; private Column[] exceptIdColumns; private String[] columnNames; private String[] idColumnNames; private String[] uniqueColumnNames; private String[] exceptIdColumnNames; private String datasourceName; private String mappingClass; public String getDatasourceName() { return datasourceName; } public void setDatasourceName( String dataSourceName ) { this.datasourceName=dataSourceName; } public Column[] getExceptIdColumns() { return exceptIdColumns; } public void setExceptIdColumns( Column[] exceptIdColumns ) { this.exceptIdColumns=exceptIdColumns; } public String[] getIdColumnNames() { return idColumnNames; } public void setIdColumnNames( String[] idColumnNames ) { this.idColumnNames=idColumnNames; } public String getMappingClass() { return this.mappingClass; } public void setMappingClass( String mappingClass ) { this.mappingClass = mappingClass; } public String[] getUniqueColumnNames() { return uniqueColumnNames; } public void setUniqueColumnNames( String[] uniqueColumnNames ) { this.uniqueColumnNames=uniqueColumnNames; } public String[] getExceptIdColumnNames() { return exceptIdColumnNames; } public void setExceptIdColumnNames( String[] exceptIdColumnNames ) { this.exceptIdColumnNames=exceptIdColumnNames; } public String[] getColumnNames() { return columnNames; } public void setColumnNames( String[] columnNames ) { this.columnNames=columnNames; } public int getId() { return id; } public void setId( int id ) { this.id=id; } public Column[] getColumns() { return columns; } public void setColumns( Column[] columns ) { this.columns = columns; } public Column[] getIdColumns() { return idColumns; } public void setIdColumns( Column[] idColumns ) { this.idColumns = idColumns; } public String getName() { return name; } public void setName( String name ) { this.name = name; } public Column[] getUniqueColumns() { return uniqueColumns; } public void setUniqueColumns( Column[] uniqueColumns ) { this.uniqueColumns = uniqueColumns; } /** * Extract a sub table definition. * * @param subColumnNames * @return */ public Table extractSubTable( String[] subColumnNames ) { Table subTable=new Table(); subTable.setId( id ); subTable.setName( name ); subTable.setColumnNames( subColumnNames ); Map columnMap=new HashMap(); for( int i=0; i<columns.length; i++ ) { columnMap.put( columns[i].getName(), columns[i] ); } Column[] subColumns=new Column[subColumnNames.length]; for( int i=0; i<subColumnNames.length; i++ ) { subColumns[i]=(Column) columnMap.get( subColumnNames[i] ); } subTable.setColumns( subColumns ); return subTable; } }