package edu.harvard.iq.dataverse.engine.command.impl;
import edu.harvard.iq.dataverse.Dataverse;
import edu.harvard.iq.dataverse.authorization.Permission;
import edu.harvard.iq.dataverse.engine.command.AbstractCommand;
import edu.harvard.iq.dataverse.engine.command.CommandContext;
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
import edu.harvard.iq.dataverse.engine.command.RequiredPermissions;
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
import edu.harvard.iq.dataverse.engine.command.exception.IllegalCommandException;
/**
*
* @author michael
*/
@RequiredPermissions( Permission.EditDataverse )
public class RenameDataverseCommand extends AbstractCommand<Dataverse>{
private final String newName;
private final Dataverse renamed;
public RenameDataverseCommand( DataverseRequest aRequest, Dataverse aDataverse, String aNewName ) {
super( aRequest, aDataverse );
newName = aNewName;
renamed = aDataverse;
}
@Override
public Dataverse execute(CommandContext ctxt) throws CommandException {
if ( newName.trim().isEmpty() ) {
throw new IllegalCommandException("Dataverse name cannot be empty", this);
}
renamed.setName(newName);
return ctxt.dataverses().save(renamed);
}
}