[jboss-svn-commits] JBL Code SVN: r25028 - labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-core/src/main/java/org/drools/marshalling.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 30 15:09:02 EST 2009


Author: salaboy21
Date: 2009-01-30 15:09:01 -0500 (Fri, 30 Jan 2009)
New Revision: 25028

Modified:
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-core/src/main/java/org/drools/marshalling/InputMarshaller.java
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java
Log:
modification in input and output manager to not store/read the variables and swimlanes for the process

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-core/src/main/java/org/drools/marshalling/InputMarshaller.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-core/src/main/java/org/drools/marshalling/InputMarshaller.java	2009-01-30 20:08:19 UTC (rev 25027)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-core/src/main/java/org/drools/marshalling/InputMarshaller.java	2009-01-30 20:09:01 UTC (rev 25028)
@@ -775,8 +775,12 @@
             readProcessInstance( context );
         }
     }
+    public static ProcessInstance readProcessInstance(MarshallerReaderContext context) throws IOException {
+        return readProcessInstance(context, true);
+    }
 
-    public static ProcessInstance readProcessInstance(MarshallerReaderContext context) throws IOException {
+    public static ProcessInstance readProcessInstance(MarshallerReaderContext context, boolean readVariables) throws IOException {
+        //@TODO: fix this method to get the variable with the persistence strategy
         ObjectInputStream stream = context.stream;
         InternalRuleBase ruleBase = context.ruleBase;
         InternalWorkingMemory wm = context.wm;
@@ -792,31 +796,37 @@
         long nodeInstanceCounter = stream.readLong();
         processInstance.setWorkingMemory( wm );
 
-        int nbVariables = stream.readInt();
-        if ( nbVariables > 0 ) {
-            VariableScopeInstance variableScopeInstance = (VariableScopeInstance) processInstance.getContextInstance( VariableScope.VARIABLE_SCOPE );
-            for ( int i = 0; i < nbVariables; i++ ) {
-                String name = stream.readUTF();
-                try {
-                    Object value = stream.readObject();
-                    variableScopeInstance.setVariable( name,
-                                                       value );
-                } catch ( ClassNotFoundException e ) {
-                    throw new IllegalArgumentException( "Could not reload variable " + name );
+        if(readVariables){
+            int nbVariables = stream.readInt();
+            if ( nbVariables > 0 ) {
+                VariableScopeInstance variableScopeInstance = (VariableScopeInstance) processInstance.getContextInstance( VariableScope.VARIABLE_SCOPE );
+                for ( int i = 0; i < nbVariables; i++ ) {
+                    String name = stream.readUTF();
+                    try {
+                        Object value = stream.readObject();
+                        variableScopeInstance.setVariable( name,
+                                                           value );
+                    } catch ( ClassNotFoundException e ) {
+                        throw new IllegalArgumentException( "Could not reload variable " + name );
+                    }
                 }
             }
-        }
+           
+            //@TODO: should i use another flag for swimlanes? or refactor the name to includeContexts
 
-        int nbSwimlanes = stream.readInt();
-        if ( nbSwimlanes > 0 ) {
-            SwimlaneContextInstance swimlaneContextInstance = (SwimlaneContextInstance) processInstance.getContextInstance( SwimlaneContext.SWIMLANE_SCOPE );
-            for ( int i = 0; i < nbSwimlanes; i++ ) {
-                String name = stream.readUTF();
-                String value = stream.readUTF();
-                swimlaneContextInstance.setActorId( name,
-                                                    value );
+            int nbSwimlanes = stream.readInt();
+            if ( nbSwimlanes > 0 ) {
+                SwimlaneContextInstance swimlaneContextInstance = (SwimlaneContextInstance) processInstance.getContextInstance( SwimlaneContext.SWIMLANE_SCOPE );
+                for ( int i = 0; i < nbSwimlanes; i++ ) {
+                    String name = stream.readUTF();
+                    String value = stream.readUTF();
+                    swimlaneContextInstance.setActorId( name,
+                                                        value );
+                }
             }
         }
+         
+        
 
         while ( stream.readShort() == PersisterEnums.NODE_INSTANCE ) {
             readNodeInstance( context,

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java	2009-01-30 20:08:19 UTC (rev 25027)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java	2009-01-30 20:09:01 UTC (rev 25028)
@@ -775,14 +775,16 @@
                 stream.writeUTF( key );
                 stream.writeObject( variables.get( key ) );
             }
+             //@TODO: should i use another flag for swimlanes? or refactor the name to includeContexts
+            SwimlaneContextInstance swimlaneContextInstance = (SwimlaneContextInstance) processInstance.getContextInstance( SwimlaneContext.SWIMLANE_SCOPE );
+            Map<String, String> swimlaneActors = swimlaneContextInstance.getSwimlaneActors();
+            stream.writeInt( swimlaneActors.size() );
+            for ( Map.Entry<String, String> entry : swimlaneActors.entrySet() ) {
+                stream.writeUTF( entry.getKey() );
+                stream.writeUTF( entry.getValue() );
+            }
         }
-        SwimlaneContextInstance swimlaneContextInstance = (SwimlaneContextInstance) processInstance.getContextInstance( SwimlaneContext.SWIMLANE_SCOPE );
-        Map<String, String> swimlaneActors = swimlaneContextInstance.getSwimlaneActors();
-        stream.writeInt( swimlaneActors.size() );
-        for ( Map.Entry<String, String> entry : swimlaneActors.entrySet() ) {
-            stream.writeUTF( entry.getKey() );
-            stream.writeUTF( entry.getValue() );
-        }
+       
 
         List<NodeInstance> nodeInstances = new ArrayList<NodeInstance>( processInstance.getNodeInstances() );
         Collections.sort( nodeInstances,




More information about the jboss-svn-commits mailing list