/*
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2005 satoshi akabane(akabane@logical-paradox.org)
 * $Id: AbstractApi.java,v 1.2 2005/09/07 13:38:06 rampil Exp $
 */
package org.logical_paradox.vsan.node;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


/**
 * 抽象APIクラス
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public abstract class AbstractApi {
	/** 操作対象データベース */
	private final Database database;

	/**
	 * コンストラクタ
	 * @param db データベース
	 */
	protected AbstractApi(Database db) {
		database = db;
	}
	/**
	 * ドメインデータベースを返す
	 * @return ドメインデータベース
	 */
	protected Database getDatabase() {
		return database;
	}
	/**
	 * データファイルのリストを返す
	 * @return データファイルのリスト
	 */
	protected List getDatafiles() {
		return database.getDatafiles();
	}
	/**
	 * レコード番号順にソートされているデータファイルのリストを返す
	 * @return 順列にソートされたデータファイルのリスト
	 */
	protected List getSortedDatafiles() {
		List datafiles = getDatafiles();

		// 順列でソートする(開始レコード番号で)
		List dbfiles = new ArrayList();
		dbfiles.addAll(datafiles);

		Collections.sort(dbfiles);

		return dbfiles;
	}
}
