@Override public void hydrate( final ClientObjectManager objectManager, final TCObject tco, final DNA dna, final Object po) throws IOException, ClassNotFoundException { final DNACursor cursor = dna.getCursor(); while (cursor.next(this.encoding)) { final LogicalAction action = cursor.getLogicalAction(); final LogicalOperation method = action.getLogicalOperation(); final Object[] params = action.getParameters(); apply(objectManager, po, method, params); } }
@Override public void apply( final ObjectID objectID, final DNACursor cursor, final ApplyTransactionInfo includeIDs) throws IOException { while (cursor.next()) { Object action = cursor.getAction(); if (action instanceof PhysicalAction) { final PhysicalAction pa = (PhysicalAction) action; if (pa.isEntireArray()) { this.componentObjects = (Object[]) pa.getObject(); } else { configMap.put(pa.getFieldName(), pa.getObject()); } } else { final LogicalAction logicalAction = (LogicalAction) action; final int method = logicalAction.getMethod(); final Object[] params = logicalAction.getParameters(); applyMethod(objectID, method, params); } } }