read.loadVariable("protocol");
read.invokeConstructor(type(TProtocolReader.class), type(TProtocol.class));
read.storeVariable("reader");
// field id field.
read.addInitializedLocalVariable(type(short.class), "fieldId");
// read all of the data in to local variables
Map<Short, LocalVariableDefinition> unionData = readSingleFieldValue(read);
// build the struct