package edu.harvard.iq.dataverse.engine.command.impl;
import edu.harvard.iq.dataverse.Dataverse;
import edu.harvard.iq.dataverse.MetadataBlock;
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.exception.CommandException;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Lists the metadata blocks of a {@link Dataverse}.
*
* @author michael
*/
// no annotations here, since permissions are dynamically decided
public class ListMetadataBlocksCommand extends AbstractCommand<List<MetadataBlock>>{
private final Dataverse dv;
public ListMetadataBlocksCommand(DataverseRequest aRequest, Dataverse aDataverse) {
super(aRequest, aDataverse);
dv = aDataverse;
}
@Override
public List<MetadataBlock> execute(CommandContext ctxt) throws CommandException {
return dv.getMetadataBlocks();
}
@Override
public Map<String, Set<Permission>> getRequiredPermissions() {
return Collections.singletonMap("",
dv.isReleased() ? Collections.<Permission>emptySet()
: Collections.singleton(Permission.ViewUnpublishedDataverse));
}
}