[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