/** * Deserialize/read a {@link State} instance from a file. * * @param is {@link InputStream} containing the state. * @param state an empty {@link State} instance to deserialize into * @param <T> the {@link State} object type * @throws IOException if it fails to deserialize the {@link State} instance */ public static <T extends State> void deserializeStateFromInputStream(InputStream is, T state) throws IOException { try (DataInputStream dis = (new DataInputStream(is))) { state.readFields(dis); } } }
@Override public void readFields(DataInput in) throws IOException { this.workUnit.readFields(in); super.readFields(in); }
@Override public void readFields(DataInput in) throws IOException { super.readFields(in); this.extract.readFields(in); }
private static State loadState (FileSystem fs, Path dir) throws IOException { State state = new State(); if (fs.exists(new Path(dir, STATE_FILE))) { try (FSDataInputStream inputStream = fs.open(new Path(dir, STATE_FILE))) { state.readFields(inputStream); } } return state; }
T state = this.stateClass.newInstance(); key.readString(dis); state.readFields(dis); states.add(state);
state.readFields(dis); states.add(state);
@Override public void readFields(DataInput in) throws IOException { int size = in.readInt(); for (int i = 0; i < size; i++) { WorkUnitState workUnitState = new WorkUnitState(); workUnitState.readFields(in); this.previousWorkUnitStates.add(new ImmutableWorkUnitState(workUnitState)); } super.readFields(in); }
state.readFields(dis);
@Test public void testInterningOfKeyValues() throws Exception { // Prove we can identify interned keys String nonInterned = new String("myKey"); // not interned String interned = new String("myInternedKey").intern(); // interned Assert.assertFalse(isInterned(nonInterned)); Assert.assertTrue(isInterned(interned)); State state = new State(); state.setProp(new String("someKey"), new String("someValue")); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); DataOutput dataOutput = new DataOutputStream(outputStream); state.write(dataOutput); outputStream.flush(); ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); DataInput dataInput = new DataInputStream(inputStream); State readState = new State(); readState.readFields(dataInput); inputStream.close(); Assert.assertEquals(state, readState); assertInterned(state.getProperties(), false); assertInterned(readState.getProperties(), true); }
Assert.assertEquals(state.getProp("boolean"), null); state.readFields(in);
/** * Deserialize/read a {@link State} instance from a file. * * @param is {@link InputStream} containing the state. * @param state an empty {@link State} instance to deserialize into * @param <T> the {@link State} object type * @throws IOException if it fails to deserialize the {@link State} instance */ public static <T extends State> void deserializeStateFromInputStream(InputStream is, T state) throws IOException { try (DataInputStream dis = (new DataInputStream(is))) { state.readFields(dis); } } }
@Override public void readFields(DataInput in) throws IOException { super.readFields(in); this.extract.readFields(in); }
@Override public void readFields(DataInput in) throws IOException { this.workUnit.readFields(in); super.readFields(in); }
private static State loadState (FileSystem fs, Path dir) throws IOException { State state = new State(); if (fs.exists(new Path(dir, STATE_FILE))) { try (FSDataInputStream inputStream = fs.open(new Path(dir, STATE_FILE))) { state.readFields(inputStream); } } return state; }
@Override public void readFields(DataInput in) throws IOException { int size = in.readInt(); for (int i = 0; i < size; i++) { WorkUnitState workUnitState = new WorkUnitState(); workUnitState.readFields(in); this.previousWorkUnitStates.add(new ImmutableWorkUnitState(workUnitState)); } super.readFields(in); }
T state = this.stateClass.newInstance(); key.readString(dis); state.readFields(dis); states.add(state);