package com.idega.slide.schema;
import java.util.ArrayList;
import java.util.List;
import com.idega.util.dbschema.Index;
import com.idega.util.dbschema.PrimaryKey;
import com.idega.util.dbschema.Schema;
import com.idega.util.dbschema.SchemaColumn;
import com.idega.util.dbschema.UniqueKey;
/**
* Last modified: $Date: 2006/04/27 11:03:11 $ by $Author: laddi $
*
* @author <a href="mailto:aron@idega.com">aron</a>
* @version $Revision: 1.5 $
*/
public abstract class SlideSchema implements Schema {
private String SQLTableName;
private List columns = new ArrayList();
private SlidePrimaryKey primaryKey = new SlidePrimaryKey();
private List indexes = new ArrayList();
private boolean autoIncrementColumn;
private List uniqueKeys = new ArrayList();
/* (non-Javadoc)
* @see com.idega.data.store.EntityDefinition#getUniqueEntityName()
*/
public String getUniqueName() {
return getSQLName();
}
/* (non-Javadoc)
* @see com.idega.data.store.EntityDefinition#getSQLTableName()
*/
public String getSQLName() {
return this.SQLTableName;
}
/* (non-Javadoc)
* @see com.idega.data.store.EntityDefinition#getFields()
*/
public SchemaColumn[] getColumns() {
return (SchemaColumn[]) this.columns.toArray(new SlideSchemaColumn[0]);
}
/* (non-Javadoc)
* @see com.idega.data.store.EntityDefinition#getPrimaryKeyDefinition()
*/
public PrimaryKey getPrimaryKey() {
return this.primaryKey;
}
/* (non-Javadoc)
* @see com.idega.data.store.EntityDefinition#getInterfaceClass()
*/
public Class getInterfaceClass() {
return null;
}
/* (non-Javadoc)
* @see com.idega.data.store.EntityDefinition#getIndexes()
*/
public Index[] getIndexes() {
return (Index[])this.indexes.toArray(new Index[0]);
}
/* (non-Javadoc)
* @see com.idega.data.IDOEntityDefinition#hasAutoIncrementColumn()
*/
public boolean hasAutoIncrementColumn() {
return this.autoIncrementColumn;
}
/* (non-Javadoc)
* @see com.idega.data.IDOEntityDefinition#setHasAutoIncrementColumn(boolean)
*/
public void setHasAutoIncrementColumn(boolean autoIncrementColumn) {
this.autoIncrementColumn = autoIncrementColumn;
}
/* (non-Javadoc)
* @see com.idega.data.store.EntityDefinition#getUniqueKeys()
*/
public UniqueKey[] getUniqueKeys() {
return (UniqueKey[])this.uniqueKeys.toArray(new UniqueKey[0]);
}
public void addUniqueKey(SlideUniqueKey key){
this.uniqueKeys.add(key);
}
protected void addColumn(SlideSchemaColumn column){
this.columns.add(column);
}
protected void addColumn(SlideSchemaColumn column, boolean partOfPrimaryKey){
this.columns.add(column);
column.setPartOfPrimaryKey(true);
this.primaryKey.addField(column);
}
protected void setPrimaryKey(SlidePrimaryKey primaryKey){
this.primaryKey = primaryKey;
}
protected void addIndex(Index index) {
this.indexes.add(index);
}
}