org.mentawai.filter
Class JpaFilter

java.lang.Object
  extended by org.mentawai.core.InputWrapper
      extended by org.mentawai.filter.JpaFilter
All Implemented Interfaces:
Map, AfterConsequenceFilter, Filter, Input

public class JpaFilter
extends InputWrapper
implements AfterConsequenceFilter

Use this filter to place an opened and connected JPA entityManager in the action input. There is no need to close the entityManager. The filter does it automatically when the action ends. The action is injected using the pull.

Author:
Marvin H Froeder (velo.br@gmail.com)

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
static String KEY
          The default key name to use when placing the entityManager in the action input.
static String TRANS_KEY
          The default key name to use when placing a jpa transaction in the action input.
 
Constructor Summary
JpaFilter(javax.persistence.EntityManagerFactory factory)
           
JpaFilter(javax.persistence.EntityManagerFactory factory, boolean transactional)
           
JpaFilter(String persistenceUnit)
           
JpaFilter(String persistenceUnit, boolean transactional)
           
JpaFilter(String persistenceUnit, boolean transactional, Map configOverrides)
           
JpaFilter(String persistenceUnit, Map configOverrides)
           
 
Method Summary
 void addResultsForRollback(String... results)
           
 void afterConsequence(Action action, Consequence c, boolean conseqExecuted, boolean actionExecuted, String result)
           
 void destroy()
          Gives a chance to the filter to deallocalte any resources before it is destroyed.
 String filter(InvocationChain chain)
          Sets the action to get an JPA EntityManager using the pull model.
 Object getValue(String key)
          Verifies if the requested object is a JPA EntityManager, return a JPA EntityManager if it is and return the content of the action's input if not.
 void setKey(String key)
          Sets the action input key to use.
 void setTransactional(boolean transactional)
           
 void setTransactional(boolean transactional, String transactionKey)
           
 String toString()
           
 
Methods inherited from class org.mentawai.core.InputWrapper
clear, containsKey, containsValue, entries, entrySet, get, getBoolean, getBoolean, getBooleanValue, getBooleanValue, getDate, getDate, getDate, getDouble, getDouble, getDoubleValue, getDoubleValue, getEnum, getEnums, getFloat, getFloat, getFloatValue, getFloatValue, getHeader, getHeaderKeys, getInt, getInt, getInts, getIntValue, getIntValue, getIntValues, getLong, getLong, getLongs, getLongValue, getLongValue, getObject, getObject, getProperty, getRoot, getString, getStrings, getStringValue, getStringValues, has, hasValue, inject, inject, isEmpty, keys, keySet, put, putAll, remove, removeInput, removeValue, setInput, setValue, size, values
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Field Detail

KEY

public static final String KEY
The default key name to use when placing the entityManager in the action input.

See Also:
Constant Field Values

TRANS_KEY

public static final String TRANS_KEY
The default key name to use when placing a jpa transaction in the action input.

See Also:
Constant Field Values
Constructor Detail

JpaFilter

public JpaFilter(javax.persistence.EntityManagerFactory factory)

JpaFilter

public JpaFilter(javax.persistence.EntityManagerFactory factory,
                 boolean transactional)

JpaFilter

public JpaFilter(String persistenceUnit)

JpaFilter

public JpaFilter(String persistenceUnit,
                 boolean transactional)

JpaFilter

public JpaFilter(String persistenceUnit,
                 boolean transactional,
                 Map configOverrides)

JpaFilter

public JpaFilter(String persistenceUnit,
                 Map configOverrides)
Method Detail

setTransactional

public void setTransactional(boolean transactional)

addResultsForRollback

public void addResultsForRollback(String... results)

setTransactional

public void setTransactional(boolean transactional,
                             String transactionKey)

toString

public String toString()
Overrides:
toString in class Object

setKey

public void setKey(String key)
Sets the action input key to use. The JPA entityManager will be placed in the action input with this key.

Parameters:
key - The action input key.

filter

public String filter(InvocationChain chain)
              throws Exception
Sets the action to get an JPA EntityManager using the pull model.

Specified by:
filter in interface Filter
Parameters:
chain - The InvocationChain for the action this filter is being applied to.
Returns:
The result of the filter or the action the filter is being applied to.
Throws:
Exception

afterConsequence

public void afterConsequence(Action action,
                             Consequence c,
                             boolean conseqExecuted,
                             boolean actionExecuted,
                             String result)
Specified by:
afterConsequence in interface AfterConsequenceFilter

destroy

public void destroy()
Description copied from interface: Filter
Gives a chance to the filter to deallocalte any resources before it is destroyed. This is called when the web application is stopped, in other words, this has nothing to do with garbage collection.

Specified by:
destroy in interface Filter

getValue

public Object getValue(String key)
Verifies if the requested object is a JPA EntityManager, return a JPA EntityManager if it is and return the content of the action's input if not.

Specified by:
getValue in interface Input
Overrides:
getValue in class InputWrapper
Parameters:
key - the name of the parameter
Returns:
the parameter value (any object) or null if it doesn't exist.


Copyright © 2013. All Rights Reserved.