/**
* Դ�������ƣ�OracleSpaceAdapter.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.database.oracle.core
* ����˵����$desc
* ����ĵ���
* ���ߣ���С��
*/
package com.hundsun.ares.studio.jres.database.oracle.internal.service;
import java.util.Collections;
import java.util.List;
import com.hundsun.ares.studio.core.service.FastFindArrayList;
import com.hundsun.ares.studio.core.service.IKeyProvider;
import com.hundsun.ares.studio.jres.database.oracle.service.IOracleSpace;
import com.hundsun.ares.studio.jres.database.oracle.service.ITableSpace;
import com.hundsun.ares.studio.jres.database.oracle.service.ITableSpaceRelation;
import com.hundsun.ares.studio.jres.model.database.oracle.OracleSpaceResourceData;
import com.hundsun.ares.studio.jres.model.database.oracle.TableSpace;
import com.hundsun.ares.studio.jres.model.database.oracle.TableSpaceRelation;
/**
* @author wangxh
*
*/
public class OracleSpaceAdapter implements IOracleSpace {
protected final OracleSpaceResourceData spaceResourceData;
FastFindArrayList<String, ITableSpace> spaceList;
FastFindArrayList<String, ITableSpaceRelation>spaceRelationList;
public OracleSpaceAdapter(OracleSpaceResourceData spaceResourceData) {
super();
this.spaceResourceData = spaceResourceData;
}
/**
* @return the spaceList
*/
public FastFindArrayList<String, ITableSpace> getSpaceList() {
if(spaceList == null){
spaceList = new FastFindArrayList<String, ITableSpace>(new IKeyProvider<String, ITableSpace>() {
@Override
public String getKey(ITableSpace obj) {
return obj.getName();
}
});
for(TableSpace Space : spaceResourceData.getSpaces()){
ITableSpace tableSpace = new TableSpaceAdapter(Space);
spaceList.add(tableSpace);
}
}
return spaceList;
}
/**
* @return the spaceRelationList
*/
public FastFindArrayList<String, ITableSpaceRelation> getSpaceRelationList() {
if(spaceRelationList == null){
spaceRelationList = new FastFindArrayList<String, ITableSpaceRelation>(new IKeyProvider<String, ITableSpaceRelation>() {
@Override
public String getKey(ITableSpaceRelation obj) {
return obj.getMainSpace();
}
});
for(TableSpaceRelation spaceRelation : spaceResourceData.getRelations()){
ITableSpaceRelation tableSpaceRelation = new TableSpaceRelationAdapter(spaceRelation);
spaceRelationList.add(tableSpaceRelation);
}
}
return spaceRelationList;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.oracle.service.IOracleSpace#getTableSpaceList()
*/
@Override
public List<? extends ITableSpace> getTableSpaceList() {
return Collections.unmodifiableList(getSpaceList());
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.oracle.service.IOracleSpace#getTableSpace(java.lang.String)
*/
@Override
public ITableSpace getTableSpace(String name) {
return getSpaceList().find(name);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.oracle.service.IOracleSpace#getTableSpaceRelationList()
*/
@Override
public List<? extends ITableSpaceRelation> getTableSpaceRelationList() {
return Collections.unmodifiableList(getSpaceRelationList());
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.database.oracle.service.IOracleSpace#getTableSpaceRelation(java.lang.String)
*/
@Override
public ITableSpaceRelation getTableSpaceRelation(String name) {
return getSpaceRelationList().find(name);
}
@Override
public String getName() {
return spaceResourceData.getName();
}
@Override
public String getChineseName() {
return spaceResourceData.getChineseName();
}
@Override
public String getDescription() {
return spaceResourceData.getDescription();
}
}