Package com.oracle.demo.ops.entitymanager

Source Code of com.oracle.demo.ops.entitymanager.ParcelManager

package com.oracle.demo.ops.entitymanager;
/*
  * **************************************************************************
* <p/>
* This code is provided for example purposes only.  Oracle does not assume
* any responsibility or liability for the consequences of using this code.
* If you choose to use this code for any reason, including but not limited
* to its use as an example you do so at your own risk and without the support
* of Oracle.
*
* This code is provided under the following licenses:
*
* GNU General Public License (GPL-2.0)
* COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0 (CDDL-1.0)
*
* <p/>
* ****************************************************************************
*/
import com.oracle.demo.ops.domain.Parcel;
import com.oracle.demo.ops.domain.ParcelStatus;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.util.Calendar;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;


@Stateless (name = "ParcelManagerBean", mappedName = "ejb/ParcelManager")
@LocalBean
public class ParcelManager implements java.io.Serializable
{
  private static final Logger logger = Logger.getLogger(ParcelManager.class.getName());

  @PersistenceContext(unitName = "ops_domain_pu")
  private EntityManager em;

  public Parcel updateParcelStatusById(int id, ParcelStatus status)
  {
    logger.finest("ParcelManager.updateParcelStatusById(int=[" + id + "], ParcelStatus=[" + status + "])");

    Parcel parcel = em.find(Parcel.class, id);

    if (parcel == null)
    {
      System.out.println("Unable to find parcel!!");
      // TODO: Throw  exception or just return null?
      return null;
    }

    parcel.setParcelStatus(status);

    return parcel;
  }
  @SuppressWarnings(value="unchecked")
  public List<Parcel> findAllParcels()
  {
    logger.finest("ParcelManager.findAllParcels() - enter");
    return em.createNamedQuery("Parcel.findAll").getResultList();
  }

  public List<Parcel> findByShipmentId(int pShipmentId)
  {
    Query q = em.createNamedQuery("Parcel.findByShipmentId");
    q.setParameter("shipmentId", pShipmentId);

    return q.getResultList();
  }

  public Parcel getParcelById(int parcelId)
  {
    logger.finest(this.getClass() + " Method=[getParcelById] id=[" + parcelId + "]");
    Parcel parcel = null;

    try
    {
      parcel = em.find(Parcel.class, parcelId);
    }
    catch (Exception e)
    {
      logger.log(Level.WARNING, "Error retrieving parcel with ID=[" + parcelId + "]: " + e.getMessage(), e);
      e.printStackTrace();
    }

    if(parcel == null)
    {
      logger.log(Level.WARNING, "Unable to find parcel with id=[" + parcelId + "]");
    }
    else
    {
      logger.info("Found parcel with id=[" + parcelId + "]");    
    }

    return parcel;
  }

  public Parcel createParcel(Parcel parcel)
  {
    em.persist(parcel);

    com.oracle.demo.ops.domain.ParcelEvent event = new com.oracle.demo.ops.domain.ParcelEvent();
    event.setParcelId(parcel.getId());
    event.setLocation("United States");
    event.setMessage("Billing Information Received");
    event.setEventDate(Calendar.getInstance());
    event.setParcelStatus(ParcelStatus.BILLING_INFO_RECEIVED);
    em.persist(event);

    return parcel;
  }

  public EntityManager getEm()
  {
    return em;
  }

  public void setEm(EntityManager em)
  {
    this.em = em;
  }

  @SuppressWarnings(value="unchecked")
  public List<Parcel> queryParcelsByContents(String inputParcelContents)
  {
    return em.createQuery("Select p from Parcel p where p.contents=?1").setParameter(1, inputParcelContents).getResultList();
  }

}
TOP

Related Classes of com.oracle.demo.ops.entitymanager.ParcelManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.