StoragesWarehouse.java
package eu.javaexperience.io.storage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import eu.javaexperience.io.FileContentMapper;
import eu.javaexperience.text.StringTools;
public class StoragesWarehouse<S extends Serializable>
{
protected String rootDir;
public StoragesWarehouse(String dir)
{
this.rootDir = dir;
new File(dir).mkdirs();
}
protected Map<String, FileContentMapper<S>> pageStorages = new HashMap<>();
public synchronized FileContentMapper<S> getStorage(String name) throws FileNotFoundException
{
FileContentMapper<S> ret = pageStorages.get(name);
if(null == ret)
{
File dir = new File(rootDir+"/"+name);
dir.mkdirs();
ret = new FileContentMapper<>(dir);
pageStorages.put(name, ret);
}
return ret;
}
public static void main(String[] args) throws Throwable
{
StoragesWarehouse env = new StoragesWarehouse("/tmp/spider_test");
{
FileContentMapper<byte[]> store = env.getStorage("teszt_bin");
store.put("0", "Árvíztűrő tükörfúrógép".getBytes());
store.put("1", StringTools.repeatString("Árvíztűrő tükörfúrógép", 100).getBytes());
}
{
FileContentMapper<String> store = (FileContentMapper<String>)(Object) env.getStorage("teszt_txt");
store.put("0", "Árvíztűrő tükörfúrógép");
store.put("1", StringTools.repeatString("Árvíztűrő tükörfúrógép", 100));
}
}
}