[jboss-cvs] jboss-seam/src/main/org/jboss/seam/framework ...

Gavin King gavin.king at jboss.com
Fri Jan 26 20:55:25 EST 2007


  User: gavin   
  Date: 07/01/26 20:55:25

  Modified:    src/main/org/jboss/seam/framework             
                        CurrentDate.java CurrentDatetime.java
                        CurrentTime.java EntityHome.java EntityQuery.java
                        HibernateEntityHome.java HibernateEntityQuery.java
                        Home.java Query.java
  Added:       src/main/org/jboss/seam/framework             
                        BusinessProcessController.java Controller.java
                        EntityController.java
                        HibernateEntityController.java
  Log:
  added controller fwk JBSEAM-646
  
  Revision  Changes    Path
  1.4       +6 -0      jboss-seam/src/main/org/jboss/seam/framework/CurrentDate.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: CurrentDate.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/CurrentDate.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- CurrentDate.java	24 Nov 2006 23:15:18 -0000	1.3
  +++ CurrentDate.java	27 Jan 2007 01:55:25 -0000	1.4
  @@ -10,6 +10,12 @@
   import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.annotations.Unwrap;
   
  +/**
  + * The current date, as an instance of java.util.Date.
  + * 
  + * @author Gavin King
  + *
  + */
   @Name("org.jboss.seam.framework.currentDate")
   @Install(precedence=BUILT_IN)
   @Scope(ScopeType.STATELESS)
  
  
  
  1.4       +6 -0      jboss-seam/src/main/org/jboss/seam/framework/CurrentDatetime.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: CurrentDatetime.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/CurrentDatetime.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- CurrentDatetime.java	24 Nov 2006 23:15:18 -0000	1.3
  +++ CurrentDatetime.java	27 Jan 2007 01:55:25 -0000	1.4
  @@ -10,6 +10,12 @@
   import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.annotations.Unwrap;
   
  +/**
  + * The current date and time, as an instance of java.util.Date.
  + * 
  + * @author Gavin King
  + *
  + */
   @Name("org.jboss.seam.framework.currentDatetime")
   @Install(precedence=BUILT_IN)
   @Scope(ScopeType.STATELESS)
  
  
  
  1.4       +6 -0      jboss-seam/src/main/org/jboss/seam/framework/CurrentTime.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: CurrentTime.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/CurrentTime.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- CurrentTime.java	24 Nov 2006 23:15:18 -0000	1.3
  +++ CurrentTime.java	27 Jan 2007 01:55:25 -0000	1.4
  @@ -10,6 +10,12 @@
   import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.annotations.Unwrap;
   
  +/**
  + * The current time, as an instance of java.util.Date.
  + * 
  + * @author Gavin King
  + *
  + */
   @Name("org.jboss.seam.framework.currentTime")
   @Install(precedence=BUILT_IN)
   @Scope(ScopeType.STATELESS)
  
  
  
  1.13      +11 -0     jboss-seam/src/main/org/jboss/seam/framework/EntityHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: EntityHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/EntityHome.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -b -r1.12 -r1.13
  --- EntityHome.java	25 Jan 2007 18:53:55 -0000	1.12
  +++ EntityHome.java	27 Jan 2007 01:55:25 -0000	1.13
  @@ -5,6 +5,12 @@
   import org.jboss.seam.annotations.Transactional;
   import org.jboss.seam.persistence.PersistenceProvider;
   
  +/**
  + * A Home object for JPA.
  + * 
  + * @author Gavin King
  + *
  + */
   public class EntityHome<E> extends Home<E>
   {
      private static final long serialVersionUID = -3140094990727574632L;
  @@ -27,6 +33,7 @@
         return getInstance()!=null && 
               getEntityManager().contains( getInstance() );
      }
  +   
      @Transactional
      public String update()
      {
  @@ -46,6 +53,7 @@
         createdMessage();
         return "persisted";
      }
  +   
      @Transactional
      public String remove()
      {
  @@ -65,6 +73,7 @@
         if (result==null) result = handleNotFound();
         return result;
      }
  +   
      public EntityManager getEntityManager()
      {
         if (entityManager==null)
  @@ -73,8 +82,10 @@
         }
         return entityManager;
      }
  +   
      public void setEntityManager(EntityManager entityManager)
      {
         this.entityManager = entityManager;
      }
  +   
   }
  
  
  
  1.8       +6 -0      jboss-seam/src/main/org/jboss/seam/framework/EntityQuery.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: EntityQuery.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/EntityQuery.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -b -r1.7 -r1.8
  --- EntityQuery.java	16 Dec 2006 14:06:58 -0000	1.7
  +++ EntityQuery.java	27 Jan 2007 01:55:25 -0000	1.8
  @@ -8,6 +8,12 @@
   import org.jboss.seam.Component;
   import org.jboss.seam.annotations.Transactional;
   
  +/**
  + * A Query object for JPA.
  + * 
  + * @author Gavin King
  + *
  + */
   public class EntityQuery extends Query
   {
      private EntityManager entityManager;
  
  
  
  1.10      +17 -0     jboss-seam/src/main/org/jboss/seam/framework/HibernateEntityHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: HibernateEntityHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/HibernateEntityHome.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -b -r1.9 -r1.10
  --- HibernateEntityHome.java	25 Jan 2007 18:53:55 -0000	1.9
  +++ HibernateEntityHome.java	27 Jan 2007 01:55:25 -0000	1.10
  @@ -5,10 +5,19 @@
   import org.jboss.seam.Component;
   import org.jboss.seam.annotations.Transactional;
   
  +/**
  + * A Home object for Hibernate.
  + * 
  + * @author Gavin King
  + *
  + */
   public class HibernateEntityHome<E> extends Home<E>
   {
  +   
      private static final long serialVersionUID = 6071072408602519385L;
  +   
      private Session session;
  +   
      @Override
      public void create()
      {
  @@ -18,12 +27,14 @@
            throw new IllegalStateException("session is null");
         }
      }
  +   
      @Transactional
      public boolean isManaged()
      {
         return getInstance()!=null && 
               getSession().contains( getInstance() );
      }
  +   
      @Transactional
      public String update()
      {
  @@ -31,6 +42,7 @@
         updatedMessage();
         return "updated";
      }
  +   
      @Transactional
      public String persist()
      {
  @@ -40,6 +52,7 @@
         createdMessage();
         return "persisted";
      }
  +   
      @Transactional
      public String remove()
      {
  @@ -48,6 +61,7 @@
         deletedMessage();
         return "removed";
      }
  +   
      @Transactional
      @Override
      public E find()
  @@ -56,6 +70,7 @@
         if (result==null) result = handleNotFound();
         return result;
      }
  +   
      public Session getSession()
      {
         if (session==null)
  @@ -64,8 +79,10 @@
         }
         return session;
      }
  +   
      public void setSession(Session session)
      {
         this.session = session;
      }
  +   
   }
  
  
  
  1.7       +6 -0      jboss-seam/src/main/org/jboss/seam/framework/HibernateEntityQuery.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: HibernateEntityQuery.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/HibernateEntityQuery.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- HibernateEntityQuery.java	16 Dec 2006 14:06:58 -0000	1.6
  +++ HibernateEntityQuery.java	27 Jan 2007 01:55:25 -0000	1.7
  @@ -6,6 +6,12 @@
   import org.jboss.seam.Component;
   import org.jboss.seam.annotations.Transactional;
   
  +/**
  + * A Query object for Hibernate.
  + * 
  + * @author Gavin King
  + *
  + */
   public class HibernateEntityQuery extends Query
   {
      private Session session;
  
  
  
  1.12      +5 -1      jboss-seam/src/main/org/jboss/seam/framework/Home.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Home.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/Home.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -b -r1.11 -r1.12
  --- Home.java	25 Jan 2007 18:53:55 -0000	1.11
  +++ Home.java	27 Jan 2007 01:55:25 -0000	1.12
  @@ -16,7 +16,11 @@
   import org.jboss.seam.core.Expressions.ValueBinding;
   
   /**
  - * Manager component for an instance of any class.
  + * Superclass for components which provide persistence
  + * operations to a managed entity instance. This class 
  + * may be reused by either configuration or extension, 
  + * and may be bound directly to a view, or accessed by 
  + * some intermediate Seam component.
    * 
    * @author Gavin King
    *
  
  
  
  1.17      +10 -0     jboss-seam/src/main/org/jboss/seam/framework/Query.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Query.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/Query.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -b -r1.16 -r1.17
  --- Query.java	25 Jan 2007 17:31:54 -0000	1.16
  +++ Query.java	27 Jan 2007 01:55:25 -0000	1.17
  @@ -14,6 +14,16 @@
   import org.jboss.seam.core.Expressions.ValueBinding;
   import org.jboss.seam.jsf.ListDataModel;
   
  +/**
  + * Superclass for components which manage a query
  + * result set. This class may be reused by either
  + * configuration or extension, and may be bound
  + * directly to a view, or accessed by some
  + * intermediate Seam component.
  + * 
  + * @author Gavin King
  + *
  + */
   public abstract class Query
   {
      private static final Pattern FROM_PATTERN = Pattern.compile("(^|\\s)(from)\\s", Pattern.CASE_INSENSITIVE);
  
  
  
  1.1      date: 2007/01/27 01:55:25;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/framework/BusinessProcessController.java
  
  Index: BusinessProcessController.java
  ===================================================================
  package org.jboss.seam.framework;
  
  import org.jboss.seam.core.BusinessProcess;
  import org.jboss.seam.core.ManagedJbpmContext;
  import org.jbpm.JbpmContext;
  import org.jbpm.graph.exe.ProcessInstance;
  import org.jbpm.taskmgmt.exe.TaskInstance;
  
  /**
   * Superclass for controller objects that control
   * the business process context programmatically.
   * Adds convenience methods for control of the
   * jBPM business process.
   * 
   * @author Gavin King
   *
   */
  public class BusinessProcessController extends Controller
  {
     protected BusinessProcess getBusinessProcess()
     {
        return BusinessProcess.instance();
     }
     
     protected JbpmContext getJbpmContext()
     {
        return ManagedJbpmContext.instance();
     }
     
     protected TaskInstance getTaskInstance()
     {
        return org.jboss.seam.core.TaskInstance.instance();
     }
     
     protected ProcessInstance getProcessInstance()
     {
        return org.jboss.seam.core.ProcessInstance.instance();
     }
       
  }
  
  
  
  1.1      date: 2007/01/27 01:55:25;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/framework/Controller.java
  
  Index: Controller.java
  ===================================================================
  package org.jboss.seam.framework;
  
  import java.util.Map;
  
  import javax.faces.context.FacesContext;
  
  import org.hibernate.validator.ClassValidator;
  import org.jboss.seam.annotations.Logger;
  import org.jboss.seam.contexts.Context;
  import org.jboss.seam.contexts.Contexts;
  import org.jboss.seam.core.Conversation;
  import org.jboss.seam.core.Events;
  import org.jboss.seam.core.FacesMessages;
  import org.jboss.seam.core.HttpError;
  import org.jboss.seam.core.Interpolator;
  import org.jboss.seam.core.Messages;
  import org.jboss.seam.core.Redirect;
  import org.jboss.seam.core.Renderer;
  import org.jboss.seam.core.Validation;
  import org.jboss.seam.core.Validators;
  import org.jboss.seam.log.Log;
  
  /**
   * Superclass for controller objects. Provides various
   * helper methods that help slightly reduce the code
   * required to create a Seam component that acts as
   * a controller.
   * 
   * @author Gavin King
   *
   */
  public class Controller
  {
  
     @Logger Log log;
  
     protected Context getApplicationContext()
     {
        return Contexts.getApplicationContext();
     }
  
     protected Context getBusinessProcessContext()
     {
        return Contexts.getBusinessProcessContext();
     }
  
     protected Context getConversationContext()
     {
        return Contexts.getConversationContext();
     }
  
     protected Context getEventContext()
     {
        return Contexts.getEventContext();
     }
  
     protected Events getEvents()
     {
        return Events.instance();
     }
     
     protected Conversation getConversation()
     {
        return Conversation.instance();
     }
  
     protected FacesMessages getFacesMessages()
     {
        return FacesMessages.instance();
     }
     
     protected String render(String path)
     {
        return Renderer.instance().render(path);
     }
  
     protected void sendHttpError(int code)
     {
        HttpError.instance().send(code);
     }
     
     protected void sendHttpError(int code, String message)
     {
        HttpError.instance().send(code, message);
     }
  
     protected Log getLog()
     {
        return log;
     }
  
     protected Map<String, String> getMessages()
     {
        return Messages.instance();
     }
  
     protected Context getMethodContext()
     {
        return Contexts.getMethodContext();
     }
  
     protected Context getPageContext()
     {
        return Contexts.getPageContext();
     }
  
     protected Redirect getRedirect()
     {
        return Redirect.instance();
     }
  
     protected Context getSessionContext()
     {
        return Contexts.getSessionContext();
     }
     
     protected FacesContext getFacesContext()
     {
        return FacesContext.getCurrentInstance();
     }
  
     protected boolean validationSucceeded()
     {
        return Validation.instance().isSucceeded();
     }
  
     protected boolean validationFailed()
     {
        return Validation.instance().isFailed();
     }
  
     protected void failValidation()
     {
        Validation.instance().fail();
     }
     
     protected String interpolate(String string, Object... params) 
     {
        return Interpolator.instance().interpolate(string, params);
     }
  
     protected <T> ClassValidator<T> getValidator(Class<T> modelClass)
     {
        return Validators.instance().getValidator(modelClass);
     } 
  
     protected void debug(Object object, Object... params)
     {
        log.debug(object, params);
     }
  
     protected void debug(Object object, Throwable t, Object... params)
     {
        log.debug(object, t, params);
     }
  
     protected void error(Object object, Object... params)
     {
        log.error(object, params);
     }
  
     protected void error(Object object, Throwable t, Object... params)
     {
        log.error(object, t, params);
     }
  
     protected void fatal(Object object, Object... params)
     {
        log.fatal(object, params);
     }
  
     protected void fatal(Object object, Throwable t, Object... params)
     {
        log.fatal(object, t, params);
     }
  
     protected void info(Object object, Object... params)
     {
        log.info(object, params);
     }
  
     protected void info(Object object, Throwable t, Object... params)
     {
        log.info(object, t, params);
     }
  
     protected void trace(Object object, Object... params)
     {
        log.trace(object, params);
     }
  
     protected void trace(Object object, Throwable t, Object... params)
     {
        log.trace(object, t, params);
     }
  
     protected void warn(Object object, Object... params)
     {
        log.warn(object, params);
     }
  
     protected void warn(Object object, Throwable t, Object... params)
     {
        log.warn(object, t, params);
     }
  
     protected void raiseAsynchronousEvent(String type, Object... parameters)
     {
        getEvents().raiseAsynchronousEvent(type, parameters);
     }
  
     protected void raiseEvent(String type, Object... parameters)
     {
        getEvents().raiseEvent(type, parameters);
     }
  
     protected void raiseTransactionSuccessEvent(String type, Object... parameters)
     {
        getEvents().raiseTransactionSuccessEvent(type, parameters);
     }
  
  }
  
  
  
  1.1      date: 2007/01/27 01:55:25;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/framework/EntityController.java
  
  Index: EntityController.java
  ===================================================================
  package org.jboss.seam.framework;
  
  import javax.persistence.EntityManager;
  import javax.persistence.LockModeType;
  import javax.persistence.Query;
  
  import org.jboss.seam.Component;
  
  /**
   * Superclass for controller objects that perform
   * persistence operations using JPA. Adds
   * convenience methods for access to the JPA
   * EntityManager.
   * 
   * @author Gavin King
   *
   */
  public class EntityController extends Controller
  {
     private EntityManager entityManager;
     
     public EntityManager getEntityManager()
     {
        if (entityManager==null)
        {
           entityManager = (EntityManager) Component.getInstance("entityManager");
        }
        return entityManager;
     }
     
     public void setEntityManager(EntityManager entityManager)
     {
        this.entityManager = entityManager;
     }
  
     protected Query createNamedQuery(String name)
     {
        return entityManager.createNamedQuery(name);
     }
  
     protected Query createQuery(String ejbql)
     {
        return entityManager.createQuery(ejbql);
     }
  
     protected <T> T find(Class<T> clazz, Object id)
     {
        return entityManager.find(clazz, id);
     }
  
     protected void flush()
     {
        entityManager.flush();
     }
  
     protected <T> T getReference(Class<T> clazz, Object id)
     {
        return entityManager.getReference(clazz, id);
     }
  
     protected void lock(Object entity, LockModeType lockMode)
     {
        entityManager.lock(entity, lockMode);
     }
  
     protected <T> T merge(T entity)
     {
        return entityManager.merge(entity);
     }
  
     protected void persist(Object entity)
     {
        entityManager.persist(entity);
     }
  
     protected void refresh(Object entity)
     {
        entityManager.refresh(entity);
     }
  
     protected void remove(Object entity)
     {
        entityManager.remove(entity);
     }
     
  }
  
  
  
  1.1      date: 2007/01/27 01:55:25;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/framework/HibernateEntityController.java
  
  Index: HibernateEntityController.java
  ===================================================================
  package org.jboss.seam.framework;
  
  import java.io.Serializable;
  
  import org.hibernate.Criteria;
  import org.hibernate.Filter;
  import org.hibernate.HibernateException;
  import org.hibernate.LockMode;
  import org.hibernate.Query;
  import org.hibernate.SQLQuery;
  import org.hibernate.Session;
  import org.jboss.seam.Component;
  
  /**
   * Superclass for controller objects that perform
   * persistence operations using Hibernate. Adds
   * convenience methods for access to the Hibernate
   * Session object.
   * 
   * @author Gavin King
   *
   */
  public class HibernateEntityController extends Controller
  {
     private Session session;
     
     public Session getSession()
     {
        if (session==null)
        {
           session = (Session) Component.getInstance("session");
        }
        return session;
     }
     
     public void setSession(Session session)
     {
        this.session = session;
     }
  
     protected Criteria createCriteria(Class clazz)
     {
        return session.createCriteria(clazz);
     }
  
     protected Query createQuery(String hql) throws HibernateException
     {
        return session.createQuery(hql);
     }
  
     protected SQLQuery createSQLQuery(String sql) throws HibernateException
     {
        return session.createSQLQuery(sql);
     }
  
     protected void delete(Object entity) throws HibernateException
     {
        session.delete(entity);
     }
  
     protected Filter enableFilter(String name)
     {
        return session.enableFilter(name);
     }
  
     protected void flush() throws HibernateException
     {
        session.flush();
     }
  
     protected <T> T get(Class<T> clazz, Serializable id, LockMode lockMode) throws HibernateException
     {
        return (T) session.get(clazz, id, lockMode);
     }
  
     protected <T> T get(Class<T> clazz, Serializable id) throws HibernateException
     {
        return (T) session.get(clazz, id);
     }
  
     protected Query getNamedQuery(String name) throws HibernateException
     {
        return session.getNamedQuery(name);
     }
  
     protected <T> T load(Class<T> clazz, Serializable id, LockMode lockMode) throws HibernateException
     {
        return (T) session.load(clazz, id, lockMode);
     }
  
     protected <T> T load(Class<T> clazz, Serializable id) throws HibernateException
     {
        return (T) session.load(clazz, id);
     }
  
     protected void lock(Object entity, LockMode lockMode) throws HibernateException
     {
        session.lock(entity, lockMode);
     }
  
     protected <T> T merge(T entity) throws HibernateException
     {
        return (T) session.merge(entity);
     }
  
     protected void persist(Object entity) throws HibernateException
     {
        session.persist(entity);
     }
  
     protected void refresh(Object entity, LockMode lockMode) throws HibernateException
     {
        session.refresh(entity, lockMode);
     }
  
     protected void refresh(Object entity) throws HibernateException
     {
        session.refresh(entity);
     }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list