/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package edu.harvard.iq.dataverse.engine.command.impl; import edu.harvard.iq.dataverse.Dataverse; import edu.harvard.iq.dataverse.Guestbook; 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; /** * * @author skraffmiller */ @RequiredPermissions(Permission.EditDataverse) public class UpdateDataverseGuestbookCommand extends AbstractCommand<Dataverse> { private final Dataverse editedDv; private final Guestbook guestbook; public UpdateDataverseGuestbookCommand(Dataverse editedDv, Guestbook guestbook, DataverseRequest aRequest) { super(aRequest, editedDv); this.editedDv = editedDv; this.guestbook = guestbook; } @Override public Dataverse execute(CommandContext ctxt) throws CommandException { //remove dataset assignments of disabled guestbooks if (!this.guestbook.isEnabled()) { ctxt.em().createNativeQuery( "Update Dataset set guestbook_id = null " + "WHERE guestbook_id =" + this.guestbook.getId() ).executeUpdate(); } ctxt.em().merge(this.guestbook); Dataverse result = ctxt.dataverses().save(editedDv); return result; } }