package io.teknek.intravert.action;
import java.util.HashMap;
import java.util.Map;
import io.teknek.intravert.action.impl.CreateColumnFamilyAction;
import io.teknek.intravert.action.impl.CreateFilterAction;
import io.teknek.intravert.action.impl.CreateKeyspaceAction;
import io.teknek.intravert.action.impl.GetKeyspaceAction;
import io.teknek.intravert.action.impl.SaveSessionAction;
import io.teknek.intravert.action.impl.LoadSessionAction;
import io.teknek.intravert.action.impl.SetKeyspaceAction;
import io.teknek.intravert.action.impl.SliceAction;
import io.teknek.intravert.action.impl.UpsertAction;
public class ActionFactory {
public static final String CREATE_SESSION = "createsession";
public static final String LOAD_SESSION = "loadsession";
public static final String SET_KEYSPACE = "setkeyspace";
public static final String GET_KEYSPACE = "getkeyspace";
public static final String CREATE_FILTER = "createfilter";
public static final String UPSERT = "upsert";
public static final String CREATE_KEYSPACE = "createkeyspace";
public static final String CREATE_COLUMN_FAMILY ="createcolumnfamily";
public static final String SLICE ="slice";
private Map<String,Action> actions;
public ActionFactory(){
actions = new HashMap<String,Action>();
actions.put(CREATE_SESSION, new SaveSessionAction());
actions.put(LOAD_SESSION, new LoadSessionAction());
actions.put(SET_KEYSPACE, new SetKeyspaceAction());
actions.put(GET_KEYSPACE, new GetKeyspaceAction());
actions.put(CREATE_FILTER, new CreateFilterAction());
actions.put(UPSERT, new UpsertAction());
actions.put(CREATE_KEYSPACE, new CreateKeyspaceAction());
actions.put(CREATE_COLUMN_FAMILY, new CreateColumnFamilyAction());
actions.put(SLICE, new SliceAction());
}
public Action findAction(String operation){
Action a = actions.get(operation);
if (a == null)
throw new IllegalArgumentException("Do not know what to do with " + operation);
return a;
}
}