/*
* Copyright (C) 2006 http://www.chaidb.org
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
package org.chaidb.db.index.btree.bufmgr;
import java.util.LinkedList;
public class CollectionStorage {
private String primaryDir;
LinkedList extendedDirs;
private String currentDir;
/**
* CollectionStorage Constructor
*
* @param primaryDir Primary Directory for this Collection
* @param extendedDirs Extended Directories for this Collection
* @param currentDir The Directory that Collection adds new files
*/
public CollectionStorage(String primaryDir, LinkedList extendedDirs, String currentDir) {
this.primaryDir = primaryDir;
this.extendedDirs = extendedDirs;
this.currentDir = currentDir;
}
/**
* CollectionStorage Constructor
*
* @param primaryDir Primary Directory for this Collection
*/
public CollectionStorage(String primaryDir) {
this.primaryDir = primaryDir;
extendedDirs = new LinkedList();
currentDir = primaryDir;
}
/**
* add a new extended Directory to the last of extendedDirs
* We take the new directory as current Directory
*
* @param extendedDir Extended Directory for this Collection
*/
public void addExtendedDir(String extendedDir) {
extendedDirs.addLast(extendedDir);
currentDir = extendedDir;
}
/**
* remove an extended Directory to the last of extendedDirs
* We take last extended directory as current Directory
*
* @param extendedDir Extended Directory to be removed
*/
public void removeExtendedDir(String extendedDir) {
extendedDirs.remove(extendedDir);
currentDir = (String) extendedDirs.getLast();
}
public String getPrimaryDirectory() {
return primaryDir;
}
public String getCurrentDirectory() {
return currentDir;
}
public LinkedList getExtendedDirectory() {
return extendedDirs;
}
}