サブスタンスのリポジトリクラス。
package domain;
import java.util.ArrayList;
import java.util.List;
import util.CopyUtil;
import dao.SubstanceDao;
import entity.Substance;
/**
* サブスタンスリポジトリ
*/
public class SubstanceRepository {
/** サブスタンスDAO */
private SubstanceDao substanceDao = null;
public SubstanceDao getSubstanceDao() {
return substanceDao;
}
public void setSubstanceDao(SubstanceDao substanceDao) {
this.substanceDao = substanceDao;
}
/** サブスタンスドメイン */
private SubstanceDomain substanceDomain = null;
public SubstanceDomain getSubstanceDomain() {
return substanceDomain;
}
public void setSubstanceDomain(SubstanceDomain substanceDomain) {
this.substanceDomain = substanceDomain;
}
/**
* ドメインを生成します。
*
* @return 生成したドメイン
*/
public SubstanceDomain createDomain(Substance substance) {
// 指定されたデータで登録を行う
substanceDao.insert(substance);
// ドメインを取得し、呼び出し側に戻す
return getDomain(substance.getSubstanceId());
}
/**
* ドメインを取得します。
*
* @param substanceId
* メタデータID
* @return 取得したドメイン
*/
public SubstanceDomain getDomain(Integer substanceId) {
// 引数をキーとして、データベースから該当データを取得する
Substance entity = substanceDao.get(substanceId);
// データが見つからなかった場合は、戻り値nullで呼び出し側に復帰する
if (entity == null) {
return null;
}
// ドメインを生成し、エンティティを設定する
SubstanceDomain substanceDomain = new SubstanceDomain();
CopyUtil.copy(this.substanceDomain, substanceDomain);
substanceDomain.setEntity(entity);
// デフォルト値を適用する
substanceDomain.applyDefaultValue();
// 生成したドメインを呼び出し側に戻す
return substanceDomain;
}
/**
* ルートサブスタンスを検索します。
*
* @return ルートサブスタンスドメインのリスト
*/
public List<SubstanceDomain> findRootSubstance() {
// DAOクラスのルートサブスタンス検索を実行する
List<Substance> substanceList = substanceDao.findRootSubstance();
// エンティティのリストをドメインのリストに変換する
List<SubstanceDomain> substanceDomainList = new ArrayList<SubstanceDomain>();
for (Substance entity : substanceList) {
substanceDomainList.add(getDomain(entity.getSubstanceId()));
}
// 作成したドメインのリストを呼び出し側に戻す
return substanceDomainList;
}
/**
* 子サブスタンスを検索します。
*
* @return 子サブスタンスドメインのリスト
*/
public List<SubstanceDomain> findChildSubstance(Integer substanceId) {
// DAOクラスの子サブスタンス検索を実行する
List<Substance> substanceList = substanceDao
.findChildSubstance(substanceId);
// エンティティのリストをドメインのリストに変換する
List<SubstanceDomain> substanceDomainList = new ArrayList<SubstanceDomain>();
for (Substance entity : substanceList) {
substanceDomainList.add(getDomain(entity.getSubstanceId()));
}
// 作成したドメインのリストを呼び出し側に戻す
return substanceDomainList;
}
/**
* メタデータIDによってサブスタンスを検索します。
*
* @return サブスタンスドメインのリスト
*/
public List<SubstanceDomain> findSubstanceByMetaDataId(Integer metaDataId) {
// DAOクラスのメタデータIDによるサブスタンス検索を実行する
List<Substance> substanceList = substanceDao
.findSubstanceByMetaDataId(metaDataId);
// エンティティのリストをドメインのリストに変換する
List<SubstanceDomain> substanceDomainList = new ArrayList<SubstanceDomain>();
for (Substance entity : substanceList) {
substanceDomainList.add(getDomain(entity.getSubstanceId()));
}
// 作成したドメインのリストを呼び出し側に戻す
return substanceDomainList;
}
}
0 件のコメント:
コメントを投稿