/* * 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.DataverseLinkingDataverse; 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 java.sql.Timestamp; import java.util.Date; /** * * @author skraffmiller */ @RequiredPermissions(Permission.PublishDataverse) public class LinkDataverseCommand extends AbstractCommand<DataverseLinkingDataverse> { private final Dataverse linkedDataverse; private final Dataverse linkingDataverse; public LinkDataverseCommand(DataverseRequest aRequest, Dataverse dataverse, Dataverse linkedDataverse) { super(aRequest, dataverse); this.linkedDataverse = linkedDataverse; this.linkingDataverse = dataverse; } @Override public DataverseLinkingDataverse execute(CommandContext ctxt) throws CommandException { DataverseLinkingDataverse dataverseLinkingDataverse = new DataverseLinkingDataverse(); dataverseLinkingDataverse.setDataverse(linkedDataverse); dataverseLinkingDataverse.setLinkingDataverse(linkingDataverse); dataverseLinkingDataverse.setLinkCreateTime(new Timestamp(new Date().getTime())); ctxt.dvLinking().save(dataverseLinkingDataverse); ctxt.index().indexDataverse(linkedDataverse); return dataverseLinkingDataverse; } }