package es.upm.fi.dia.oeg.map4rdf.server.command;
import com.google.inject.Inject;
import es.upm.fi.dia.oeg.map4rdf.client.action.GetMapsConfiguration;
import es.upm.fi.dia.oeg.map4rdf.client.action.GetMapsConfigurationResult;
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 GetMapsConfigurationHandler implements ActionHandler<GetMapsConfiguration, GetMapsConfigurationResult>{
private MultipleConfigurations configurations;
@Inject
public GetMapsConfigurationHandler(MultipleConfigurations configurations) {
this.configurations=configurations;
}
@Override
public Class<GetMapsConfiguration> getActionType() {
return GetMapsConfiguration.class;
}
@Override
public GetMapsConfigurationResult execute(GetMapsConfiguration action,
ExecutionContext context) throws DispatchException {
if(!configurations.existsConfiguration(action.getConfigID())){
throw new ActionException("Bad Config ID");
}
return new GetMapsConfigurationResult(configurations.getConfiguration(action.getConfigID()).getMapsConfigurationServer().getMapsConfiguration());
}
@Override
public void rollback(GetMapsConfiguration action,
GetMapsConfigurationResult result, ExecutionContext context)
throws DispatchException {
}
}