/**
* Դ�������ƣ�TableAdapter.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.database.core
* ����˵����$desc
* ����ĵ���
* ���ߣ���Ҷ��
*/
package com.hundsun.ares.studio.jres.database.internal.service;
import java.util.Collections;
import java.util.List;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.core.service.FastFindArrayList;
import com.hundsun.ares.studio.core.service.IKeyProvider;
import com.hundsun.ares.studio.jres.database.service.ITable;
import com.hundsun.ares.studio.jres.database.service.ITableColumn;
import com.hundsun.ares.studio.jres.database.service.ITableIndex;
import com.hundsun.ares.studio.jres.model.database.TableColumn;
import com.hundsun.ares.studio.jres.model.database.TableIndex;
import com.hundsun.ares.studio.jres.model.database.TableResourceData;
/**
* @author gongyf
*
*/
public class TableAdapter implements ITable {
final protected TableResourceData table;
protected FastFindArrayList<String, ITableColumn>tableColumnList;
protected FastFindArrayList<String, ITableIndex>tableIndexList;
private IARESProject project;
/**
* @param table
*/
public TableAdapter(TableResourceData table,IARESProject project) {
super();
this.table = table;
this.project = project;
}
/**
* @return the tableColumnList
*/
private FastFindArrayList<String, ITableColumn> getTableColumnList() {
if(tableColumnList == null){
tableColumnList = new FastFindArrayList<String, ITableColumn>(new IKeyProvider<String, ITableColumn>() {
@Override
public String getKey(ITableColumn obj) {
return obj.getName();
}
});
for (TableColumn col : table.getColumns()) {
tableColumnList.add(new TableColumnAdapter(col,project));
}
}
return tableColumnList;
}
/**
* @return the tableIndexList
*/
private FastFindArrayList<String, ITableIndex> getTableIndexList() {
if(tableIndexList == null){
tableIndexList = new FastFindArrayList<String, ITableIndex>(new IKeyProvider<String, ITableIndex>() {
@Override
public String getKey(ITableIndex obj) {
return obj.getName();
}
});
for (TableIndex index : table.getIndexes()) {
tableIndexList.add(new TableIndexAdapter(index,project));
}
}
return tableIndexList;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.service.ITable#getName()
*/
@Override
public String getName() {
return table.getName();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.service.ITable#getChineseName()
*/
@Override
public String getChineseName() {
return table.getChineseName();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.service.ITable#getDescription()
*/
@Override
public String getDescription() {
return table.getDescription();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.service.ITable#getColumnList()
*/
@Override
public List<ITableColumn> getColumnList() {
return Collections.unmodifiableList(getTableColumnList());
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.service.ITable#getColum(java.lang.String)
*/
@Override
public ITableColumn getColum(String name) {
return getTableColumnList().find(name);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.service.ITable#getIndexList()
*/
@Override
public List<ITableIndex> getIndexList() {
return Collections.unmodifiableList(getTableIndexList());
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.service.ITable#getIndex(java.lang.String)
*/
@Override
public ITableIndex getIndex(String name) {
return getTableIndexList().find(name);
}
}