package openeye.storage;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import com.google.gson.Gson;
import java.io.File;
import java.util.Collection;
import java.util.Map;
public class GsonPredefinedStorage<T> extends GsonStorageBase<T> implements IQueryableStorage<T> {
private final Map<String, IDataSource<T>> sources;
public GsonPredefinedStorage(File dir, Class<? extends T> cls, Gson gson, String... ids) {
super(cls, gson, "json");
Preconditions.checkArgument(dir.isDirectory());
ImmutableMap.Builder<String, IDataSource<T>> builder = ImmutableMap.builder();
for (String id : ids) {
File f = new File(dir, id + ".json");
builder.put(id, createFromFile(id, f));
}
sources = builder.build();
}
@Override
public Collection<IDataSource<T>> listAll() {
return sources.values();
}
@Override
public IDataSource<T> getById(String id) {
return sources.get(id);
}
@Override
protected void removeEntry(String id) {
// NO-OP
}
}