package es.upm.fi.dia.oeg.map4rdf.server.command;
import java.util.HashMap;
import com.google.inject.Inject;
import es.upm.fi.dia.oeg.map4rdf.client.action.GetMultipleConfigurationParameters;
import es.upm.fi.dia.oeg.map4rdf.client.action.GetMultipleConfigurationParametersResult;
import es.upm.fi.dia.oeg.map4rdf.server.conf.multiple.MultipleConfigurations;
import net.customware.gwt.dispatch.server.ActionHandler;
import net.customware.gwt.dispatch.server.ExecutionContext;
import net.customware.gwt.dispatch.shared.ActionException;
import net.customware.gwt.dispatch.shared.DispatchException;
public class GetMultipleConfigurationParametersHandler implements ActionHandler<GetMultipleConfigurationParameters, GetMultipleConfigurationParametersResult>{
private MultipleConfigurations configurations;
@Override
public Class<GetMultipleConfigurationParameters> getActionType() {
return GetMultipleConfigurationParameters.class;
}
@Inject
public GetMultipleConfigurationParametersHandler(MultipleConfigurations configurations) {
super();
this.configurations = configurations;
}
@Override
public GetMultipleConfigurationParametersResult execute(GetMultipleConfigurationParameters action,
ExecutionContext context) throws ActionException {
if(!configurations.existsConfiguration(action.getConfigID())){
throw new ActionException("Bad Config ID");
}
HashMap<String, String> result=new HashMap<String,String>();
for(String param: action.getParameters()){
String resultParam=configurations.getConfiguration(action.getConfigID()).getConfigurationParamValue(param);
if(resultParam!=null){
result.put(param, resultParam);
}
}
return new GetMultipleConfigurationParametersResult(result);
}
@Override
public void rollback(GetMultipleConfigurationParameters action,
GetMultipleConfigurationParametersResult result,
ExecutionContext context) throws DispatchException {
}
}