for ( InternalFactHandle handle : orderFacts( objectStore ) ) { writeFactHandle( context, stream, objectMarshallingStrategyStore, handle ); writeRightTuples( handle, context ); for ( InternalFactHandle handle : orderFacts( matchFactHandles ) ) { Object object = handle.getObject(); writeFactHandle( context, stream, objectMarshallingStrategyStore, handle ); writeRightTuples( handle, context ); writeLeftTuples( context, orderFacts( objectStore ) ); writeLeftTuples( context, orderFacts( matchFactHandles ) ); } else { stream.writeBoolean( false );
writeAgenda( context ); writeInitialFactHandleRightTuples( context ); for ( WorkingMemoryEntryPoint wmep : wm.getEntryPoints().values() ) { context.stream.writeShort( PersisterEnums.ENTRY_POINT ); context.stream.writeUTF( wmep.getEntryPointId() ); writeFactHandles( context, (( NamedEntryPoint )wmep).getObjectStore() ); writeInitialFactHandleLeftTuples( context ); writePropagationContexts( context ); writeActivations( context ); writeActionQueue( context ); writeTruthMaintenanceSystem( context ); writeTimers( context.wm.getTimerService().getTimerJobInstances(), context );
writeLeftTuple( childLeftTuple, context, recurse ); stream.writeShort( PersisterEnums.LEFT_TUPLE ); stream.writeInt( childLeftTuple.getLeftTupleSink().getId() ); writeLeftTuple( childLeftTuple, context, recurse ); stream.writeShort( PersisterEnums.LEFT_TUPLE ); stream.writeInt( childLeftTuple.getLeftTupleSink().getId() ); writeLeftTuple( childLeftTuple, context, recurse ); stream.writeShort( PersisterEnums.LEFT_TUPLE ); stream.writeInt( childLeftTuple.getLeftTupleSink().getId() ); writeLeftTuple( childLeftTuple, context, recurse ); writeFactHandle( context, stream, context.objectMarshallingStrategyStore, int sinkId = childLeftTuple.getLeftTupleSink().getId(); stream.writeInt( sinkId ); writeLeftTuple( childLeftTuple,
public static void writeInitialFactHandleLeftTuples(MarshallerWriteContext context) throws IOException { ObjectOutputStream stream = context.stream; //context.out.println( "InitialFact LeftTuples Start" ); InternalFactHandle handle = context.wm.getInitialFactHandle(); for ( LeftTuple leftTuple = handle.getFirstLeftTuple(); leftTuple != null; leftTuple = (LeftTuple) leftTuple.getLeftParentNext() ) { stream.writeShort( PersisterEnums.LEFT_TUPLE ); stream.writeInt( leftTuple.getLeftTupleSink().getId() ); //context.out.println( "LeftTuple sinkId:" + leftTuple.getLeftTupleSink().getId() ); writeLeftTuple( leftTuple, context, true ); } stream.writeShort( PersisterEnums.END ); //context.out.println( "InitialFact LeftTuples End" ); }
private static void writeFactHandle(MarshallerWriteContext context, ObjectOutputStream stream, ObjectMarshallingStrategyStore objectMarshallingStrategyStore, InternalFactHandle handle) throws IOException { writeFactHandle( context, stream, objectMarshallingStrategyStore, ( handle instanceof EventFactHandle ) ? 2 : 0, handle ); }
public static void writeActivations(MarshallerWriteContext context) throws IOException { ObjectOutputStream stream = context.stream; Entry<LeftTuple, Integer>[] entries = context.terminalTupleMap.entrySet().toArray( new Entry[context.terminalTupleMap.size()] ); Arrays.sort( entries, TupleSorter.instance ); //Map<LeftTuple, Integer> tuples = context.terminalTupleMap; if ( entries.length != 0 ) { for ( Entry<LeftTuple, Integer> entry : entries ) { if ( entry.getKey().getObject() != null ) { LeftTuple leftTuple = entry.getKey(); stream.writeShort( PersisterEnums.ACTIVATION ); writeActivation( context, leftTuple, (AgendaItem) leftTuple .getObject(), (RuleTerminalNode) leftTuple .getLeftTupleSink() ); } } } stream.writeShort( PersisterEnums.END ); }
public static void writeLeftTuples(MarshallerWriteContext context, InternalFactHandle[] factHandles) throws IOException { ObjectOutputStream stream = context.stream; InternalWorkingMemory wm = context.wm; // Write out LeftTuples //context.out.println( "LeftTuples Start" ); for ( InternalFactHandle handle : factHandles ) { //InternalFactHandle handle = (InternalFactHandle) it.next(); for ( LeftTuple leftTuple = handle.getFirstLeftTuple(); leftTuple != null; leftTuple = (LeftTuple) leftTuple.getLeftParentNext() ) { stream.writeShort( PersisterEnums.LEFT_TUPLE ); int sinkId = leftTuple.getLeftTupleSink().getId() ; stream.writeInt( sinkId ); stream.writeInt( handle.getId() ); //context.out.println( "LeftTuple sinkId:" + leftTuple.getLeftTupleSink().getId() + " handleId:" + handle.getId() ); writeLeftTuple( leftTuple, context, true ); } } stream.writeShort( PersisterEnums.END ); //context.out.println( "LeftTuples End" ); }