package edu.harvard.iq.dataverse.engine;
import edu.harvard.iq.dataverse.DvObject;
import edu.harvard.iq.dataverse.authorization.Permission;
import edu.harvard.iq.dataverse.engine.command.Command;
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* Test implementation of the dataverse engine service. Does not check permissions.
* @author michael
*/
public class TestDataverseEngine implements DataverseEngine {
private final TestCommandContext ctxt;
private final Map<DvObject, Set<Permission>> reqiredPermissionsForObjects = new HashMap<>();
public TestDataverseEngine(TestCommandContext ctxt) {
this.ctxt = ctxt;
}
@Override
public <R> R submit(Command<R> aCommand) throws CommandException {
Map<String, DvObject> affectedDvs = aCommand.getAffectedDvObjects();
final Map<String, Set<Permission>> requiredPermissions = aCommand.getRequiredPermissions();
aCommand.getRequest();
for ( String dvObjKey : affectedDvs.keySet() ) {
reqiredPermissionsForObjects.put( affectedDvs.get(dvObjKey), requiredPermissions.get(dvObjKey) );
}
return aCommand.execute(ctxt);
}
public Map<DvObject, Set<Permission>> getReqiredPermissionsForObjects() {
return reqiredPermissionsForObjects;
}
}