package vfs;

import java.io.*;
import java.nio.*;
import java.nio.channels.*;

/**
 * 仮想ファイルシステム
 */
public abstract class Vfs {
    public static String SCHEME_FILE = "file";
    public static String SCHEME_HED = "hed";

    /**
     * 実際のVfsインスタンスを返すファクトリメソッド
     */
    public static Vfs create(String scheme, String basePath) throws IOException {
	if(scheme.equals(SCHEME_FILE))
	    return new RealFileSys(basePath);
	throw new RuntimeException("unknown scheme: " + scheme);
    }

    public abstract ByteBuffer getBuffer(String relPath) throws IOException;
}
