org.jbpm.marshalling.impl
Class ProcessInstanceResolverStrategy

java.lang.Object
  extended by org.jbpm.marshalling.impl.ProcessInstanceResolverStrategy
All Implemented Interfaces:
ObjectMarshallingStrategy

public class ProcessInstanceResolverStrategy
extends Object
implements ObjectMarshallingStrategy

When using this strategy, knowledge session de/marshalling process will make sure that the processInstance is not serialized as a part of the the session/network.

Instead, this strategy, which may only be used for ProcessInstance objects, saves the process instance in the ProcessInstanceManager, and later retrieves it from there.

If you're doing tricky things with serialization and persistence, please make sure to remember that the ProcessInstanceManager cache of process instances is emptied at the end of every transaction (commit).


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.drools.marshalling.ObjectMarshallingStrategy
ObjectMarshallingStrategy.Context
 
Constructor Summary
ProcessInstanceResolverStrategy()
           
 
Method Summary
 boolean accept(Object object)
           
 ObjectMarshallingStrategy.Context createContext()
          Creates a new marshalling context
 byte[] marshal(ObjectMarshallingStrategy.Context context, ObjectOutputStream os, Object object)
          This method is analogous to the write() method, but instead of writing the object into an output stream, it returns the marshalled object as a byte[].
 Object read(ObjectInputStream is)
           
static org.drools.common.InternalKnowledgeRuntime retrieveKnowledgeRuntime(Object streamContext)
          Retrieve the ProcessInstanceManager object from the ObjectOutput- or ObjectInputStream.
static ProcessInstanceManager retrieveProcessInstanceManager(Object streamContext)
          Retrieve the ProcessInstanceManager object from the ObjectOutput- or ObjectInputStream.
 Object unmarshal(ObjectMarshallingStrategy.Context context, ObjectInputStream is, byte[] object, ClassLoader classloader)
          This method is analogous to the read method, but instead of reading it from an input stream, it reads it from a byte[]
 void write(ObjectOutputStream os, Object object)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProcessInstanceResolverStrategy

public ProcessInstanceResolverStrategy()
Method Detail

accept

public boolean accept(Object object)
Specified by:
accept in interface ObjectMarshallingStrategy

write

public void write(ObjectOutputStream os,
                  Object object)
           throws IOException
Specified by:
write in interface ObjectMarshallingStrategy
Throws:
IOException

read

public Object read(ObjectInputStream is)
            throws IOException,
                   ClassNotFoundException
Specified by:
read in interface ObjectMarshallingStrategy
Throws:
IOException
ClassNotFoundException

retrieveProcessInstanceManager

public static ProcessInstanceManager retrieveProcessInstanceManager(Object streamContext)
Retrieve the ProcessInstanceManager object from the ObjectOutput- or ObjectInputStream. The stream object will secretly also either be a MarshallerReaderContext or a MarshallerWriteContext.

Parameters:
streamContext - The marshaller stream/context.
Returns:
A ProcessInstanceManager object.

retrieveKnowledgeRuntime

public static org.drools.common.InternalKnowledgeRuntime retrieveKnowledgeRuntime(Object streamContext)
Retrieve the ProcessInstanceManager object from the ObjectOutput- or ObjectInputStream. The stream object will secretly also either be a MarshallerReaderContext or a MarshallerWriteContext.

The knowledge runtime object is useful in order to reconnect the process instance to the process and the knowledge runtime object.

Parameters:
streamContext - The marshaller stream/context.
Returns:
A InternalKnowledgeRuntime object.

marshal

public byte[] marshal(ObjectMarshallingStrategy.Context context,
                      ObjectOutputStream os,
                      Object object)
               throws IOException
Description copied from interface: ObjectMarshallingStrategy
This method is analogous to the write() method, but instead of writing the object into an output stream, it returns the marshalled object as a byte[].

Specified by:
marshal in interface ObjectMarshallingStrategy
object - the object to be marshalled
Returns:
the marshalled byte[] of the input object
Throws:
IOException

unmarshal

public Object unmarshal(ObjectMarshallingStrategy.Context context,
                        ObjectInputStream is,
                        byte[] object,
                        ClassLoader classloader)
                 throws IOException,
                        ClassNotFoundException
Description copied from interface: ObjectMarshallingStrategy
This method is analogous to the read method, but instead of reading it from an input stream, it reads it from a byte[]

Specified by:
unmarshal in interface ObjectMarshallingStrategy
object - the marshalled object in a byte[]
Returns:
the unmarshalled Object
Throws:
IOException
ClassNotFoundException

createContext

public ObjectMarshallingStrategy.Context createContext()
Description copied from interface: ObjectMarshallingStrategy
Creates a new marshalling context

Specified by:
createContext in interface ObjectMarshallingStrategy


Copyright © 2001-2012 JBoss by Red Hat. All Rights Reserved.