/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package io.seqware.webservice.controller;
import io.seqware.webservice.generated.controller.SequencerRunAttributeFacadeREST;
import io.seqware.webservice.generated.controller.SequencerRunFacadeREST;
import io.seqware.webservice.generated.model.SequencerRunAttribute;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
/**
*
* @author dyuen
*/
@Stateless
@Path("io.seqware.webservice.model.sequencerrunattribute")
public class CustomSequencerRunAttributeFacadeREST extends SequencerRunAttributeFacadeREST {
@PersistenceContext(unitName = "io.seqware_seqware-admin-webservice_war_1.0-SNAPSHOTPU")
private EntityManager em;
@EJB
private SequencerRunFacadeREST sequencerRunFacadeRest;
/**
* Create a new sequencer run and a new sequencer run attribute to associate with it in a single step. Both steps occur in a single
* transaction.
*
* @param entity
* The sequencer run attribute with nested sequencer run.
*/
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
@POST
@Path("withbaseentity")
@Consumes({ "application/json", "application/xml" })
public void createWithBaseEntity(SequencerRunAttribute entity) {
sequencerRunFacadeRest.create(entity.getSampleId());
em.flush();
super.create(entity);
}
}