// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: org/jbpm/marshalling/jbpmmessages.proto

package org.jbpm.marshalling.impl;

public final class JBPMMessages {
  private JBPMMessages() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registry.add(org.jbpm.marshalling.impl.JBPMMessages.processInstance);
    registry.add(org.jbpm.marshalling.impl.JBPMMessages.workItem);
    registry.add(org.jbpm.marshalling.impl.JBPMMessages.processTimer);
    registry.add(org.jbpm.marshalling.impl.JBPMMessages.timerId);
    registry.add(org.jbpm.marshalling.impl.JBPMMessages.procTimer);
  }
  public interface ProcessInstanceOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional string process_type = 1;
    boolean hasProcessType();
    String getProcessType();
    
    // optional int64 id = 2;
    boolean hasId();
    long getId();
    
    // optional string process_id = 3;
    boolean hasProcessId();
    String getProcessId();
    
    // optional int32 state = 4;
    boolean hasState();
    int getState();
    
    // optional int64 node_instance_counter = 5;
    boolean hasNodeInstanceCounter();
    long getNodeInstanceCounter();
    
    // repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance> 
        getSwimlaneContextList();
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getSwimlaneContext(int index);
    int getSwimlaneContextCount();
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder> 
        getSwimlaneContextOrBuilderList();
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder getSwimlaneContextOrBuilder(
        int index);
    
    // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> 
        getNodeInstanceList();
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index);
    int getNodeInstanceCount();
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
        getNodeInstanceOrBuilderList();
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
        int index);
    
    // repeated .org.jbpm.marshalling.Variable variable = 8;
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> 
        getVariableList();
    org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index);
    int getVariableCount();
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList();
    org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index);
    
    // repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> 
        getExclusiveGroupList();
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index);
    int getExclusiveGroupCount();
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
        getExclusiveGroupOrBuilderList();
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
        int index);
  }
  public static final class ProcessInstance extends
      com.google.protobuf.GeneratedMessage
      implements ProcessInstanceOrBuilder {
    // Use ProcessInstance.newBuilder() to construct.
    private ProcessInstance(Builder builder) {
      super(builder);
    }
    private ProcessInstance(boolean noInit) {}
    
    private static final ProcessInstance defaultInstance;
    public static ProcessInstance getDefaultInstance() {
      return defaultInstance;
    }
    
    public ProcessInstance getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_fieldAccessorTable;
    }
    
    public enum NodeInstanceType
        implements com.google.protobuf.ProtocolMessageEnum {
      RULE_SET_NODE(0, 0),
      HUMAN_TASK_NODE(1, 1),
      WORK_ITEM_NODE(2, 2),
      SUBPROCESS_NODE(3, 3),
      MILESTONE_NODE(4, 4),
      EVENT_NODE(5, 5),
      TIMER_NODE(6, 6),
      JOIN_NODE(7, 7),
      STATE_NODE(8, 8),
      COMPOSITE_CONTEXT_NODE(9, 9),
      FOR_EACH_NODE(10, 10),
      DYNAMIC_NODE(11, 11),
      ;
      
      public static final int RULE_SET_NODE_VALUE = 0;
      public static final int HUMAN_TASK_NODE_VALUE = 1;
      public static final int WORK_ITEM_NODE_VALUE = 2;
      public static final int SUBPROCESS_NODE_VALUE = 3;
      public static final int MILESTONE_NODE_VALUE = 4;
      public static final int EVENT_NODE_VALUE = 5;
      public static final int TIMER_NODE_VALUE = 6;
      public static final int JOIN_NODE_VALUE = 7;
      public static final int STATE_NODE_VALUE = 8;
      public static final int COMPOSITE_CONTEXT_NODE_VALUE = 9;
      public static final int FOR_EACH_NODE_VALUE = 10;
      public static final int DYNAMIC_NODE_VALUE = 11;
      
      
      public final int getNumber() { return value; }
      
      public static NodeInstanceType valueOf(int value) {
        switch (value) {
          case 0: return RULE_SET_NODE;
          case 1: return HUMAN_TASK_NODE;
          case 2: return WORK_ITEM_NODE;
          case 3: return SUBPROCESS_NODE;
          case 4: return MILESTONE_NODE;
          case 5: return EVENT_NODE;
          case 6: return TIMER_NODE;
          case 7: return JOIN_NODE;
          case 8: return STATE_NODE;
          case 9: return COMPOSITE_CONTEXT_NODE;
          case 10: return FOR_EACH_NODE;
          case 11: return DYNAMIC_NODE;
          default: return null;
        }
      }
      
      public static com.google.protobuf.Internal.EnumLiteMap<NodeInstanceType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap<NodeInstanceType>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<NodeInstanceType>() {
              public NodeInstanceType findValueByNumber(int number) {
                return NodeInstanceType.valueOf(number);
              }
            };
      
      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.getDescriptor().getEnumTypes().get(0);
      }
      
      private static final NodeInstanceType[] VALUES = {
        RULE_SET_NODE, HUMAN_TASK_NODE, WORK_ITEM_NODE, SUBPROCESS_NODE, MILESTONE_NODE, EVENT_NODE, TIMER_NODE, JOIN_NODE, STATE_NODE, COMPOSITE_CONTEXT_NODE, FOR_EACH_NODE, DYNAMIC_NODE, 
      };
      
      public static NodeInstanceType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }
      
      private final int index;
      private final int value;
      
      private NodeInstanceType(int index, int value) {
        this.index = index;
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceType)
    }
    
    public interface SwimlaneContextInstanceOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // optional string swimlane = 1;
      boolean hasSwimlane();
      String getSwimlane();
      
      // optional string actor_id = 2;
      boolean hasActorId();
      String getActorId();
    }
    public static final class SwimlaneContextInstance extends
        com.google.protobuf.GeneratedMessage
        implements SwimlaneContextInstanceOrBuilder {
      // Use SwimlaneContextInstance.newBuilder() to construct.
      private SwimlaneContextInstance(Builder builder) {
        super(builder);
      }
      private SwimlaneContextInstance(boolean noInit) {}
      
      private static final SwimlaneContextInstance defaultInstance;
      public static SwimlaneContextInstance getDefaultInstance() {
        return defaultInstance;
      }
      
      public SwimlaneContextInstance getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_fieldAccessorTable;
      }
      
      private int bitField0_;
      // optional string swimlane = 1;
      public static final int SWIMLANE_FIELD_NUMBER = 1;
      private Object swimlane_;
      public boolean hasSwimlane() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public String getSwimlane() {
        Object ref = swimlane_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            swimlane_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getSwimlaneBytes() {
        Object ref = swimlane_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          swimlane_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      // optional string actor_id = 2;
      public static final int ACTOR_ID_FIELD_NUMBER = 2;
      private Object actorId_;
      public boolean hasActorId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public String getActorId() {
        Object ref = actorId_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            actorId_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getActorIdBytes() {
        Object ref = actorId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          actorId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      private void initFields() {
        swimlane_ = "";
        actorId_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getSwimlaneBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getActorIdBytes());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getSwimlaneBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getActorIdBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      @java.lang.Override
      protected Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_fieldAccessorTable;
        }
        
        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          swimlane_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          actorId_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.getDescriptor();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.getDefaultInstance();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance build() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance buildPartial() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.swimlane_ = swimlane_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.actorId_ = actorId_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance) {
            return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance other) {
          if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.getDefaultInstance()) return this;
          if (other.hasSwimlane()) {
            setSwimlane(other.getSwimlane());
          }
          if (other.hasActorId()) {
            setActorId(other.getActorId());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 10: {
                bitField0_ |= 0x00000001;
                swimlane_ = input.readBytes();
                break;
              }
              case 18: {
                bitField0_ |= 0x00000002;
                actorId_ = input.readBytes();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // optional string swimlane = 1;
        private Object swimlane_ = "";
        public boolean hasSwimlane() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public String getSwimlane() {
          Object ref = swimlane_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            swimlane_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setSwimlane(String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          swimlane_ = value;
          onChanged();
          return this;
        }
        public Builder clearSwimlane() {
          bitField0_ = (bitField0_ & ~0x00000001);
          swimlane_ = getDefaultInstance().getSwimlane();
          onChanged();
          return this;
        }
        void setSwimlane(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000001;
          swimlane_ = value;
          onChanged();
        }
        
        // optional string actor_id = 2;
        private Object actorId_ = "";
        public boolean hasActorId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public String getActorId() {
          Object ref = actorId_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            actorId_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setActorId(String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          actorId_ = value;
          onChanged();
          return this;
        }
        public Builder clearActorId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          actorId_ = getDefaultInstance().getActorId();
          onChanged();
          return this;
        }
        void setActorId(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000002;
          actorId_ = value;
          onChanged();
        }
        
        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance)
      }
      
      static {
        defaultInstance = new SwimlaneContextInstance(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance)
    }
    
    public interface NodeInstanceOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // optional int64 id = 1;
      boolean hasId();
      long getId();
      
      // optional int64 node_id = 2;
      boolean hasNodeId();
      long getNodeId();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;
      boolean hasContent();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getContent();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder getContentOrBuilder();
    }
    public static final class NodeInstance extends
        com.google.protobuf.GeneratedMessage
        implements NodeInstanceOrBuilder {
      // Use NodeInstance.newBuilder() to construct.
      private NodeInstance(Builder builder) {
        super(builder);
      }
      private NodeInstance(boolean noInit) {}
      
      private static final NodeInstance defaultInstance;
      public static NodeInstance getDefaultInstance() {
        return defaultInstance;
      }
      
      public NodeInstance getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_fieldAccessorTable;
      }
      
      private int bitField0_;
      // optional int64 id = 1;
      public static final int ID_FIELD_NUMBER = 1;
      private long id_;
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public long getId() {
        return id_;
      }
      
      // optional int64 node_id = 2;
      public static final int NODE_ID_FIELD_NUMBER = 2;
      private long nodeId_;
      public boolean hasNodeId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public long getNodeId() {
        return nodeId_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;
      public static final int CONTENT_FIELD_NUMBER = 4;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent content_;
      public boolean hasContent() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getContent() {
        return content_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder getContentOrBuilder() {
        return content_;
      }
      
      private void initFields() {
        id_ = 0L;
        nodeId_ = 0L;
        content_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt64(1, id_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt64(2, nodeId_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(4, content_);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, id_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, nodeId_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, content_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      @java.lang.Override
      protected Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_fieldAccessorTable;
        }
        
        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getContentFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          id_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000001);
          nodeId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000002);
          if (contentBuilder_ == null) {
            content_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance();
          } else {
            contentBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDescriptor();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance build() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance buildPartial() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.id_ = id_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.nodeId_ = nodeId_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          if (contentBuilder_ == null) {
            result.content_ = content_;
          } else {
            result.content_ = contentBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance) {
            return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance other) {
          if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance()) return this;
          if (other.hasId()) {
            setId(other.getId());
          }
          if (other.hasNodeId()) {
            setNodeId(other.getNodeId());
          }
          if (other.hasContent()) {
            mergeContent(other.getContent());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                id_ = input.readInt64();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                nodeId_ = input.readInt64();
                break;
              }
              case 34: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.newBuilder();
                if (hasContent()) {
                  subBuilder.mergeFrom(getContent());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setContent(subBuilder.buildPartial());
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // optional int64 id = 1;
        private long id_ ;
        public boolean hasId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public long getId() {
          return id_;
        }
        public Builder setId(long value) {
          bitField0_ |= 0x00000001;
          id_ = value;
          onChanged();
          return this;
        }
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0L;
          onChanged();
          return this;
        }
        
        // optional int64 node_id = 2;
        private long nodeId_ ;
        public boolean hasNodeId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public long getNodeId() {
          return nodeId_;
        }
        public Builder setNodeId(long value) {
          bitField0_ |= 0x00000002;
          nodeId_ = value;
          onChanged();
          return this;
        }
        public Builder clearNodeId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          nodeId_ = 0L;
          onChanged();
          return this;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent content_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder> contentBuilder_;
        public boolean hasContent() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getContent() {
          if (contentBuilder_ == null) {
            return content_;
          } else {
            return contentBuilder_.getMessage();
          }
        }
        public Builder setContent(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent value) {
          if (contentBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            content_ = value;
            onChanged();
          } else {
            contentBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder setContent(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder builderForValue) {
          if (contentBuilder_ == null) {
            content_ = builderForValue.build();
            onChanged();
          } else {
            contentBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder mergeContent(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent value) {
          if (contentBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004) &&
                content_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance()) {
              content_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.newBuilder(content_).mergeFrom(value).buildPartial();
            } else {
              content_ = value;
            }
            onChanged();
          } else {
            contentBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder clearContent() {
          if (contentBuilder_ == null) {
            content_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance();
            onChanged();
          } else {
            contentBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder getContentBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getContentFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder getContentOrBuilder() {
          if (contentBuilder_ != null) {
            return contentBuilder_.getMessageOrBuilder();
          } else {
            return content_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder> 
            getContentFieldBuilder() {
          if (contentBuilder_ == null) {
            contentBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder>(
                    content_,
                    getParentForChildren(),
                    isClean());
            content_ = null;
          }
          return contentBuilder_;
        }
        
        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstance)
      }
      
      static {
        defaultInstance = new NodeInstance(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstance)
    }
    
    public interface ExclusiveGroupInstanceOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // repeated int64 group_node_instance_id = 1;
      java.util.List<java.lang.Long> getGroupNodeInstanceIdList();
      int getGroupNodeInstanceIdCount();
      long getGroupNodeInstanceId(int index);
    }
    public static final class ExclusiveGroupInstance extends
        com.google.protobuf.GeneratedMessage
        implements ExclusiveGroupInstanceOrBuilder {
      // Use ExclusiveGroupInstance.newBuilder() to construct.
      private ExclusiveGroupInstance(Builder builder) {
        super(builder);
      }
      private ExclusiveGroupInstance(boolean noInit) {}
      
      private static final ExclusiveGroupInstance defaultInstance;
      public static ExclusiveGroupInstance getDefaultInstance() {
        return defaultInstance;
      }
      
      public ExclusiveGroupInstance getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_fieldAccessorTable;
      }
      
      // repeated int64 group_node_instance_id = 1;
      public static final int GROUP_NODE_INSTANCE_ID_FIELD_NUMBER = 1;
      private java.util.List<java.lang.Long> groupNodeInstanceId_;
      public java.util.List<java.lang.Long>
          getGroupNodeInstanceIdList() {
        return groupNodeInstanceId_;
      }
      public int getGroupNodeInstanceIdCount() {
        return groupNodeInstanceId_.size();
      }
      public long getGroupNodeInstanceId(int index) {
        return groupNodeInstanceId_.get(index);
      }
      
      private void initFields() {
        groupNodeInstanceId_ = java.util.Collections.emptyList();;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        for (int i = 0; i < groupNodeInstanceId_.size(); i++) {
          output.writeInt64(1, groupNodeInstanceId_.get(i));
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < groupNodeInstanceId_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(groupNodeInstanceId_.get(i));
          }
          size += dataSize;
          size += 1 * getGroupNodeInstanceIdList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      @java.lang.Override
      protected Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_fieldAccessorTable;
        }
        
        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          groupNodeInstanceId_ = java.util.Collections.emptyList();;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDescriptor();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance build() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance buildPartial() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance(this);
          int from_bitField0_ = bitField0_;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            groupNodeInstanceId_ = java.util.Collections.unmodifiableList(groupNodeInstanceId_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.groupNodeInstanceId_ = groupNodeInstanceId_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance) {
            return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance other) {
          if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance()) return this;
          if (!other.groupNodeInstanceId_.isEmpty()) {
            if (groupNodeInstanceId_.isEmpty()) {
              groupNodeInstanceId_ = other.groupNodeInstanceId_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureGroupNodeInstanceIdIsMutable();
              groupNodeInstanceId_.addAll(other.groupNodeInstanceId_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 8: {
                ensureGroupNodeInstanceIdIsMutable();
                groupNodeInstanceId_.add(input.readInt64());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addGroupNodeInstanceId(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // repeated int64 group_node_instance_id = 1;
        private java.util.List<java.lang.Long> groupNodeInstanceId_ = java.util.Collections.emptyList();;
        private void ensureGroupNodeInstanceIdIsMutable() {
          if (!((bitField0_ & 0x00000001) == 0x00000001)) {
            groupNodeInstanceId_ = new java.util.ArrayList<java.lang.Long>(groupNodeInstanceId_);
            bitField0_ |= 0x00000001;
           }
        }
        public java.util.List<java.lang.Long>
            getGroupNodeInstanceIdList() {
          return java.util.Collections.unmodifiableList(groupNodeInstanceId_);
        }
        public int getGroupNodeInstanceIdCount() {
          return groupNodeInstanceId_.size();
        }
        public long getGroupNodeInstanceId(int index) {
          return groupNodeInstanceId_.get(index);
        }
        public Builder setGroupNodeInstanceId(
            int index, long value) {
          ensureGroupNodeInstanceIdIsMutable();
          groupNodeInstanceId_.set(index, value);
          onChanged();
          return this;
        }
        public Builder addGroupNodeInstanceId(long value) {
          ensureGroupNodeInstanceIdIsMutable();
          groupNodeInstanceId_.add(value);
          onChanged();
          return this;
        }
        public Builder addAllGroupNodeInstanceId(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureGroupNodeInstanceIdIsMutable();
          super.addAll(values, groupNodeInstanceId_);
          onChanged();
          return this;
        }
        public Builder clearGroupNodeInstanceId() {
          groupNodeInstanceId_ = java.util.Collections.emptyList();;
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance)
      }
      
      static {
        defaultInstance = new ExclusiveGroupInstance(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance)
    }
    
    public interface NodeInstanceContentOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;
      boolean hasType();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType getType();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;
      boolean hasRuleSet();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getRuleSet();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder getRuleSetOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;
      boolean hasHumanTask();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getHumanTask();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder getHumanTaskOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;
      boolean hasWorkItem();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getWorkItem();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder getWorkItemOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;
      boolean hasSubProcess();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getSubProcess();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder getSubProcessOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;
      boolean hasMilestone();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getMilestone();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder getMilestoneOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;
      boolean hasEvent();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getEvent();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder getEventOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;
      boolean hasTimer();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getTimer();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder getTimerOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;
      boolean hasJoin();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getJoin();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder getJoinOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;
      boolean hasState();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getState();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder getStateOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;
      boolean hasComposite();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getComposite();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder getCompositeOrBuilder();
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;
      boolean hasForEach();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getForEach();
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder getForEachOrBuilder();
    }
    public static final class NodeInstanceContent extends
        com.google.protobuf.GeneratedMessage
        implements NodeInstanceContentOrBuilder {
      // Use NodeInstanceContent.newBuilder() to construct.
      private NodeInstanceContent(Builder builder) {
        super(builder);
      }
      private NodeInstanceContent(boolean noInit) {}
      
      private static final NodeInstanceContent defaultInstance;
      public static NodeInstanceContent getDefaultInstance() {
        return defaultInstance;
      }
      
      public NodeInstanceContent getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_fieldAccessorTable;
      }
      
      public interface RuleSetNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // repeated int64 timer_instance_id = 1;
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        int getTimerInstanceIdCount();
        long getTimerInstanceId(int index);
      }
      public static final class RuleSetNode extends
          com.google.protobuf.GeneratedMessage
          implements RuleSetNodeOrBuilder {
        // Use RuleSetNode.newBuilder() to construct.
        private RuleSetNode(Builder builder) {
          super(builder);
        }
        private RuleSetNode(boolean noInit) {}
        
        private static final RuleSetNode defaultInstance;
        public static RuleSetNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public RuleSetNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_fieldAccessorTable;
        }
        
        // repeated int64 timer_instance_id = 1;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        private java.util.List<java.lang.Long> timerInstanceId_;
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.get(index);
        }
        
        private void initFields() {
          timerInstanceId_ = java.util.Collections.emptyList();;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(1, timerInstanceId_.get(i));
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          {
            int dataSize = 0;
            for (int i = 0; i < timerInstanceId_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt64SizeNoTag(timerInstanceId_.get(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode(this);
            int from_bitField0_ = bitField0_;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.timerInstanceId_ = timerInstanceId_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance()) return this;
            if (!other.timerInstanceId_.isEmpty()) {
              if (timerInstanceId_.isEmpty()) {
                timerInstanceId_ = other.timerInstanceId_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.addAll(other.timerInstanceId_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 8: {
                  ensureTimerInstanceIdIsMutable();
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  while (input.getBytesUntilLimit() > 0) {
                    addTimerInstanceId(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // repeated int64 timer_instance_id = 1;
          private java.util.List<java.lang.Long> timerInstanceId_ = java.util.Collections.emptyList();;
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = new java.util.ArrayList<java.lang.Long>(timerInstanceId_);
              bitField0_ |= 0x00000001;
             }
          }
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode)
        }
        
        static {
          defaultInstance = new RuleSetNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode)
      }
      
      public interface HumanTaskNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // optional int64 work_item_id = 1;
        boolean hasWorkItemId();
        long getWorkItemId();
        
        // repeated int64 timer_instance_id = 2;
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        int getTimerInstanceIdCount();
        long getTimerInstanceId(int index);
      }
      public static final class HumanTaskNode extends
          com.google.protobuf.GeneratedMessage
          implements HumanTaskNodeOrBuilder {
        // Use HumanTaskNode.newBuilder() to construct.
        private HumanTaskNode(Builder builder) {
          super(builder);
        }
        private HumanTaskNode(boolean noInit) {}
        
        private static final HumanTaskNode defaultInstance;
        public static HumanTaskNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public HumanTaskNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_fieldAccessorTable;
        }
        
        private int bitField0_;
        // optional int64 work_item_id = 1;
        public static final int WORK_ITEM_ID_FIELD_NUMBER = 1;
        private long workItemId_;
        public boolean hasWorkItemId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public long getWorkItemId() {
          return workItemId_;
        }
        
        // repeated int64 timer_instance_id = 2;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        private java.util.List<java.lang.Long> timerInstanceId_;
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.get(index);
        }
        
        private void initFields() {
          workItemId_ = 0L;
          timerInstanceId_ = java.util.Collections.emptyList();;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeInt64(1, workItemId_);
          }
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(2, timerInstanceId_.get(i));
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt64Size(1, workItemId_);
          }
          {
            int dataSize = 0;
            for (int i = 0; i < timerInstanceId_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt64SizeNoTag(timerInstanceId_.get(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            workItemId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000001);
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.workItemId_ = workItemId_;
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.timerInstanceId_ = timerInstanceId_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance()) return this;
            if (other.hasWorkItemId()) {
              setWorkItemId(other.getWorkItemId());
            }
            if (!other.timerInstanceId_.isEmpty()) {
              if (timerInstanceId_.isEmpty()) {
                timerInstanceId_ = other.timerInstanceId_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.addAll(other.timerInstanceId_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  workItemId_ = input.readInt64();
                  break;
                }
                case 16: {
                  ensureTimerInstanceIdIsMutable();
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  while (input.getBytesUntilLimit() > 0) {
                    addTimerInstanceId(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // optional int64 work_item_id = 1;
          private long workItemId_ ;
          public boolean hasWorkItemId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public long getWorkItemId() {
            return workItemId_;
          }
          public Builder setWorkItemId(long value) {
            bitField0_ |= 0x00000001;
            workItemId_ = value;
            onChanged();
            return this;
          }
          public Builder clearWorkItemId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            workItemId_ = 0L;
            onChanged();
            return this;
          }
          
          // repeated int64 timer_instance_id = 2;
          private java.util.List<java.lang.Long> timerInstanceId_ = java.util.Collections.emptyList();;
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000002) == 0x00000002)) {
              timerInstanceId_ = new java.util.ArrayList<java.lang.Long>(timerInstanceId_);
              bitField0_ |= 0x00000002;
             }
          }
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode)
        }
        
        static {
          defaultInstance = new HumanTaskNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode)
      }
      
      public interface WorkItemNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // optional int64 work_item_id = 1;
        boolean hasWorkItemId();
        long getWorkItemId();
        
        // repeated int64 timer_instance_id = 2;
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        int getTimerInstanceIdCount();
        long getTimerInstanceId(int index);
      }
      public static final class WorkItemNode extends
          com.google.protobuf.GeneratedMessage
          implements WorkItemNodeOrBuilder {
        // Use WorkItemNode.newBuilder() to construct.
        private WorkItemNode(Builder builder) {
          super(builder);
        }
        private WorkItemNode(boolean noInit) {}
        
        private static final WorkItemNode defaultInstance;
        public static WorkItemNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public WorkItemNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_fieldAccessorTable;
        }
        
        private int bitField0_;
        // optional int64 work_item_id = 1;
        public static final int WORK_ITEM_ID_FIELD_NUMBER = 1;
        private long workItemId_;
        public boolean hasWorkItemId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public long getWorkItemId() {
          return workItemId_;
        }
        
        // repeated int64 timer_instance_id = 2;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        private java.util.List<java.lang.Long> timerInstanceId_;
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.get(index);
        }
        
        private void initFields() {
          workItemId_ = 0L;
          timerInstanceId_ = java.util.Collections.emptyList();;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeInt64(1, workItemId_);
          }
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(2, timerInstanceId_.get(i));
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt64Size(1, workItemId_);
          }
          {
            int dataSize = 0;
            for (int i = 0; i < timerInstanceId_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt64SizeNoTag(timerInstanceId_.get(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            workItemId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000001);
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.workItemId_ = workItemId_;
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.timerInstanceId_ = timerInstanceId_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance()) return this;
            if (other.hasWorkItemId()) {
              setWorkItemId(other.getWorkItemId());
            }
            if (!other.timerInstanceId_.isEmpty()) {
              if (timerInstanceId_.isEmpty()) {
                timerInstanceId_ = other.timerInstanceId_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.addAll(other.timerInstanceId_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  workItemId_ = input.readInt64();
                  break;
                }
                case 16: {
                  ensureTimerInstanceIdIsMutable();
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  while (input.getBytesUntilLimit() > 0) {
                    addTimerInstanceId(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // optional int64 work_item_id = 1;
          private long workItemId_ ;
          public boolean hasWorkItemId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public long getWorkItemId() {
            return workItemId_;
          }
          public Builder setWorkItemId(long value) {
            bitField0_ |= 0x00000001;
            workItemId_ = value;
            onChanged();
            return this;
          }
          public Builder clearWorkItemId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            workItemId_ = 0L;
            onChanged();
            return this;
          }
          
          // repeated int64 timer_instance_id = 2;
          private java.util.List<java.lang.Long> timerInstanceId_ = java.util.Collections.emptyList();;
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000002) == 0x00000002)) {
              timerInstanceId_ = new java.util.ArrayList<java.lang.Long>(timerInstanceId_);
              bitField0_ |= 0x00000002;
             }
          }
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode)
        }
        
        static {
          defaultInstance = new WorkItemNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode)
      }
      
      public interface SubProcessNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // optional int64 process_instance_id = 1;
        boolean hasProcessInstanceId();
        long getProcessInstanceId();
        
        // repeated int64 timer_instance_id = 2;
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        int getTimerInstanceIdCount();
        long getTimerInstanceId(int index);
      }
      public static final class SubProcessNode extends
          com.google.protobuf.GeneratedMessage
          implements SubProcessNodeOrBuilder {
        // Use SubProcessNode.newBuilder() to construct.
        private SubProcessNode(Builder builder) {
          super(builder);
        }
        private SubProcessNode(boolean noInit) {}
        
        private static final SubProcessNode defaultInstance;
        public static SubProcessNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public SubProcessNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_fieldAccessorTable;
        }
        
        private int bitField0_;
        // optional int64 process_instance_id = 1;
        public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 1;
        private long processInstanceId_;
        public boolean hasProcessInstanceId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public long getProcessInstanceId() {
          return processInstanceId_;
        }
        
        // repeated int64 timer_instance_id = 2;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        private java.util.List<java.lang.Long> timerInstanceId_;
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.get(index);
        }
        
        private void initFields() {
          processInstanceId_ = 0L;
          timerInstanceId_ = java.util.Collections.emptyList();;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeInt64(1, processInstanceId_);
          }
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(2, timerInstanceId_.get(i));
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt64Size(1, processInstanceId_);
          }
          {
            int dataSize = 0;
            for (int i = 0; i < timerInstanceId_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt64SizeNoTag(timerInstanceId_.get(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            processInstanceId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000001);
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.processInstanceId_ = processInstanceId_;
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.timerInstanceId_ = timerInstanceId_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance()) return this;
            if (other.hasProcessInstanceId()) {
              setProcessInstanceId(other.getProcessInstanceId());
            }
            if (!other.timerInstanceId_.isEmpty()) {
              if (timerInstanceId_.isEmpty()) {
                timerInstanceId_ = other.timerInstanceId_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.addAll(other.timerInstanceId_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  processInstanceId_ = input.readInt64();
                  break;
                }
                case 16: {
                  ensureTimerInstanceIdIsMutable();
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  while (input.getBytesUntilLimit() > 0) {
                    addTimerInstanceId(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // optional int64 process_instance_id = 1;
          private long processInstanceId_ ;
          public boolean hasProcessInstanceId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public long getProcessInstanceId() {
            return processInstanceId_;
          }
          public Builder setProcessInstanceId(long value) {
            bitField0_ |= 0x00000001;
            processInstanceId_ = value;
            onChanged();
            return this;
          }
          public Builder clearProcessInstanceId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            processInstanceId_ = 0L;
            onChanged();
            return this;
          }
          
          // repeated int64 timer_instance_id = 2;
          private java.util.List<java.lang.Long> timerInstanceId_ = java.util.Collections.emptyList();;
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000002) == 0x00000002)) {
              timerInstanceId_ = new java.util.ArrayList<java.lang.Long>(timerInstanceId_);
              bitField0_ |= 0x00000002;
             }
          }
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode)
        }
        
        static {
          defaultInstance = new SubProcessNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode)
      }
      
      public interface MilestoneNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // repeated int64 timer_instance_id = 1;
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        int getTimerInstanceIdCount();
        long getTimerInstanceId(int index);
      }
      public static final class MilestoneNode extends
          com.google.protobuf.GeneratedMessage
          implements MilestoneNodeOrBuilder {
        // Use MilestoneNode.newBuilder() to construct.
        private MilestoneNode(Builder builder) {
          super(builder);
        }
        private MilestoneNode(boolean noInit) {}
        
        private static final MilestoneNode defaultInstance;
        public static MilestoneNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public MilestoneNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_fieldAccessorTable;
        }
        
        // repeated int64 timer_instance_id = 1;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        private java.util.List<java.lang.Long> timerInstanceId_;
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.get(index);
        }
        
        private void initFields() {
          timerInstanceId_ = java.util.Collections.emptyList();;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(1, timerInstanceId_.get(i));
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          {
            int dataSize = 0;
            for (int i = 0; i < timerInstanceId_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt64SizeNoTag(timerInstanceId_.get(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode(this);
            int from_bitField0_ = bitField0_;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.timerInstanceId_ = timerInstanceId_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance()) return this;
            if (!other.timerInstanceId_.isEmpty()) {
              if (timerInstanceId_.isEmpty()) {
                timerInstanceId_ = other.timerInstanceId_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.addAll(other.timerInstanceId_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 8: {
                  ensureTimerInstanceIdIsMutable();
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  while (input.getBytesUntilLimit() > 0) {
                    addTimerInstanceId(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // repeated int64 timer_instance_id = 1;
          private java.util.List<java.lang.Long> timerInstanceId_ = java.util.Collections.emptyList();;
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = new java.util.ArrayList<java.lang.Long>(timerInstanceId_);
              bitField0_ |= 0x00000001;
             }
          }
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode)
        }
        
        static {
          defaultInstance = new MilestoneNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode)
      }
      
      public interface EventNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
      }
      public static final class EventNode extends
          com.google.protobuf.GeneratedMessage
          implements EventNodeOrBuilder {
        // Use EventNode.newBuilder() to construct.
        private EventNode(Builder builder) {
          super(builder);
        }
        private EventNode(boolean noInit) {}
        
        private static final EventNode defaultInstance;
        public static EventNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public EventNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_fieldAccessorTable;
        }
        
        private void initFields() {
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode(this);
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance()) return this;
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
              }
            }
          }
          
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode)
        }
        
        static {
          defaultInstance = new EventNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode)
      }
      
      public interface TimerNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // optional int64 timer_id = 1;
        boolean hasTimerId();
        long getTimerId();
      }
      public static final class TimerNode extends
          com.google.protobuf.GeneratedMessage
          implements TimerNodeOrBuilder {
        // Use TimerNode.newBuilder() to construct.
        private TimerNode(Builder builder) {
          super(builder);
        }
        private TimerNode(boolean noInit) {}
        
        private static final TimerNode defaultInstance;
        public static TimerNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public TimerNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_fieldAccessorTable;
        }
        
        private int bitField0_;
        // optional int64 timer_id = 1;
        public static final int TIMER_ID_FIELD_NUMBER = 1;
        private long timerId_;
        public boolean hasTimerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public long getTimerId() {
          return timerId_;
        }
        
        private void initFields() {
          timerId_ = 0L;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeInt64(1, timerId_);
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt64Size(1, timerId_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            timerId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.timerId_ = timerId_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance()) return this;
            if (other.hasTimerId()) {
              setTimerId(other.getTimerId());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  timerId_ = input.readInt64();
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // optional int64 timer_id = 1;
          private long timerId_ ;
          public boolean hasTimerId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public long getTimerId() {
            return timerId_;
          }
          public Builder setTimerId(long value) {
            bitField0_ |= 0x00000001;
            timerId_ = value;
            onChanged();
            return this;
          }
          public Builder clearTimerId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            timerId_ = 0L;
            onChanged();
            return this;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode)
        }
        
        static {
          defaultInstance = new TimerNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode)
      }
      
      public interface JoinNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger> 
            getTriggerList();
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger getTrigger(int index);
        int getTriggerCount();
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder> 
            getTriggerOrBuilderList();
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder getTriggerOrBuilder(
            int index);
      }
      public static final class JoinNode extends
          com.google.protobuf.GeneratedMessage
          implements JoinNodeOrBuilder {
        // Use JoinNode.newBuilder() to construct.
        private JoinNode(Builder builder) {
          super(builder);
        }
        private JoinNode(boolean noInit) {}
        
        private static final JoinNode defaultInstance;
        public static JoinNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public JoinNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_fieldAccessorTable;
        }
        
        public interface JoinTriggerOrBuilder
            extends com.google.protobuf.MessageOrBuilder {
          
          // optional int64 node_id = 1;
          boolean hasNodeId();
          long getNodeId();
          
          // optional int32 counter = 2;
          boolean hasCounter();
          int getCounter();
        }
        public static final class JoinTrigger extends
            com.google.protobuf.GeneratedMessage
            implements JoinTriggerOrBuilder {
          // Use JoinTrigger.newBuilder() to construct.
          private JoinTrigger(Builder builder) {
            super(builder);
          }
          private JoinTrigger(boolean noInit) {}
          
          private static final JoinTrigger defaultInstance;
          public static JoinTrigger getDefaultInstance() {
            return defaultInstance;
          }
          
          public JoinTrigger getDefaultInstanceForType() {
            return defaultInstance;
          }
          
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_fieldAccessorTable;
          }
          
          private int bitField0_;
          // optional int64 node_id = 1;
          public static final int NODE_ID_FIELD_NUMBER = 1;
          private long nodeId_;
          public boolean hasNodeId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public long getNodeId() {
            return nodeId_;
          }
          
          // optional int32 counter = 2;
          public static final int COUNTER_FIELD_NUMBER = 2;
          private int counter_;
          public boolean hasCounter() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          public int getCounter() {
            return counter_;
          }
          
          private void initFields() {
            nodeId_ = 0L;
            counter_ = 0;
          }
          private byte memoizedIsInitialized = -1;
          public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized != -1) return isInitialized == 1;
            
            memoizedIsInitialized = 1;
            return true;
          }
          
          public void writeTo(com.google.protobuf.CodedOutputStream output)
                              throws java.io.IOException {
            getSerializedSize();
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              output.writeInt64(1, nodeId_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              output.writeInt32(2, counter_);
            }
            getUnknownFields().writeTo(output);
          }
          
          private int memoizedSerializedSize = -1;
          public int getSerializedSize() {
            int size = memoizedSerializedSize;
            if (size != -1) return size;
          
            size = 0;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              size += com.google.protobuf.CodedOutputStream
                .computeInt64Size(1, nodeId_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              size += com.google.protobuf.CodedOutputStream
                .computeInt32Size(2, counter_);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSerializedSize = size;
            return size;
          }
          
          @java.lang.Override
          protected Object writeReplace() throws java.io.ObjectStreamException {
            return super.writeReplace();
          }
          
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data).buildParsed();
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data, extensionRegistry)
                     .buildParsed();
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(byte[] data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data).buildParsed();
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              byte[] data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return newBuilder().mergeFrom(data, extensionRegistry)
                     .buildParsed();
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(java.io.InputStream input)
              throws java.io.IOException {
            return newBuilder().mergeFrom(input).buildParsed();
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return newBuilder().mergeFrom(input, extensionRegistry)
                     .buildParsed();
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
            Builder builder = newBuilder();
            if (builder.mergeDelimitedFrom(input)) {
              return builder.buildParsed();
            } else {
              return null;
            }
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            Builder builder = newBuilder();
            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
              return builder.buildParsed();
            } else {
              return null;
            }
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
            return newBuilder().mergeFrom(input).buildParsed();
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return newBuilder().mergeFrom(input, extensionRegistry)
                     .buildParsed();
          }
          
          public static Builder newBuilder() { return Builder.create(); }
          public Builder newBuilderForType() { return newBuilder(); }
          public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger prototype) {
            return newBuilder().mergeFrom(prototype);
          }
          public Builder toBuilder() { return newBuilder(this); }
          
          @java.lang.Override
          protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
          }
          public static final class Builder extends
              com.google.protobuf.GeneratedMessage.Builder<Builder>
             implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
              return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_descriptor;
            }
            
            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_fieldAccessorTable;
            }
            
            // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.newBuilder()
            private Builder() {
              maybeForceBuilderInitialization();
            }
            
            private Builder(BuilderParent parent) {
              super(parent);
              maybeForceBuilderInitialization();
            }
            private void maybeForceBuilderInitialization() {
              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
              }
            }
            private static Builder create() {
              return new Builder();
            }
            
            public Builder clear() {
              super.clear();
              nodeId_ = 0L;
              bitField0_ = (bitField0_ & ~0x00000001);
              counter_ = 0;
              bitField0_ = (bitField0_ & ~0x00000002);
              return this;
            }
            
            public Builder clone() {
              return create().mergeFrom(buildPartial());
            }
            
            public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
              return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.getDescriptor();
            }
            
            public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger getDefaultInstanceForType() {
              return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.getDefaultInstance();
            }
            
            public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger build() {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(result);
              }
              return result;
            }
            
            private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger buildParsed()
                throws com.google.protobuf.InvalidProtocolBufferException {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(
                  result).asInvalidProtocolBufferException();
              }
              return result;
            }
            
            public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger buildPartial() {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger(this);
              int from_bitField0_ = bitField0_;
              int to_bitField0_ = 0;
              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                to_bitField0_ |= 0x00000001;
              }
              result.nodeId_ = nodeId_;
              if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                to_bitField0_ |= 0x00000002;
              }
              result.counter_ = counter_;
              result.bitField0_ = to_bitField0_;
              onBuilt();
              return result;
            }
            
            public Builder mergeFrom(com.google.protobuf.Message other) {
              if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger) {
                return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger)other);
              } else {
                super.mergeFrom(other);
                return this;
              }
            }
            
            public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger other) {
              if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.getDefaultInstance()) return this;
              if (other.hasNodeId()) {
                setNodeId(other.getNodeId());
              }
              if (other.hasCounter()) {
                setCounter(other.getCounter());
              }
              this.mergeUnknownFields(other.getUnknownFields());
              return this;
            }
            
            public final boolean isInitialized() {
              return true;
            }
            
            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder(
                  this.getUnknownFields());
              while (true) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  default: {
                    if (!parseUnknownField(input, unknownFields,
                                           extensionRegistry, tag)) {
                      this.setUnknownFields(unknownFields.build());
                      onChanged();
                      return this;
                    }
                    break;
                  }
                  case 8: {
                    bitField0_ |= 0x00000001;
                    nodeId_ = input.readInt64();
                    break;
                  }
                  case 16: {
                    bitField0_ |= 0x00000002;
                    counter_ = input.readInt32();
                    break;
                  }
                }
              }
            }
            
            private int bitField0_;
            
            // optional int64 node_id = 1;
            private long nodeId_ ;
            public boolean hasNodeId() {
              return ((bitField0_ & 0x00000001) == 0x00000001);
            }
            public long getNodeId() {
              return nodeId_;
            }
            public Builder setNodeId(long value) {
              bitField0_ |= 0x00000001;
              nodeId_ = value;
              onChanged();
              return this;
            }
            public Builder clearNodeId() {
              bitField0_ = (bitField0_ & ~0x00000001);
              nodeId_ = 0L;
              onChanged();
              return this;
            }
            
            // optional int32 counter = 2;
            private int counter_ ;
            public boolean hasCounter() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
            }
            public int getCounter() {
              return counter_;
            }
            public Builder setCounter(int value) {
              bitField0_ |= 0x00000002;
              counter_ = value;
              onChanged();
              return this;
            }
            public Builder clearCounter() {
              bitField0_ = (bitField0_ & ~0x00000002);
              counter_ = 0;
              onChanged();
              return this;
            }
            
            // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger)
          }
          
          static {
            defaultInstance = new JoinTrigger(true);
            defaultInstance.initFields();
          }
          
          // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger)
        }
        
        // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;
        public static final int TRIGGER_FIELD_NUMBER = 1;
        private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger> trigger_;
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger> getTriggerList() {
          return trigger_;
        }
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder> 
            getTriggerOrBuilderList() {
          return trigger_;
        }
        public int getTriggerCount() {
          return trigger_.size();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger getTrigger(int index) {
          return trigger_.get(index);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder getTriggerOrBuilder(
            int index) {
          return trigger_.get(index);
        }
        
        private void initFields() {
          trigger_ = java.util.Collections.emptyList();
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          for (int i = 0; i < trigger_.size(); i++) {
            output.writeMessage(1, trigger_.get(i));
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          for (int i = 0; i < trigger_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(1, trigger_.get(i));
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
              getTriggerFieldBuilder();
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            if (triggerBuilder_ == null) {
              trigger_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              triggerBuilder_.clear();
            }
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode(this);
            int from_bitField0_ = bitField0_;
            if (triggerBuilder_ == null) {
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                trigger_ = java.util.Collections.unmodifiableList(trigger_);
                bitField0_ = (bitField0_ & ~0x00000001);
              }
              result.trigger_ = trigger_;
            } else {
              result.trigger_ = triggerBuilder_.build();
            }
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance()) return this;
            if (triggerBuilder_ == null) {
              if (!other.trigger_.isEmpty()) {
                if (trigger_.isEmpty()) {
                  trigger_ = other.trigger_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                } else {
                  ensureTriggerIsMutable();
                  trigger_.addAll(other.trigger_);
                }
                onChanged();
              }
            } else {
              if (!other.trigger_.isEmpty()) {
                if (triggerBuilder_.isEmpty()) {
                  triggerBuilder_.dispose();
                  triggerBuilder_ = null;
                  trigger_ = other.trigger_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                  triggerBuilder_ = 
                    com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                       getTriggerFieldBuilder() : null;
                } else {
                  triggerBuilder_.addAllMessages(other.trigger_);
                }
              }
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 10: {
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.newBuilder();
                  input.readMessage(subBuilder, extensionRegistry);
                  addTrigger(subBuilder.buildPartial());
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;
          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger> trigger_ =
            java.util.Collections.emptyList();
          private void ensureTriggerIsMutable() {
            if (!((bitField0_ & 0x00000001) == 0x00000001)) {
              trigger_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger>(trigger_);
              bitField0_ |= 0x00000001;
             }
          }
          
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder> triggerBuilder_;
          
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger> getTriggerList() {
            if (triggerBuilder_ == null) {
              return java.util.Collections.unmodifiableList(trigger_);
            } else {
              return triggerBuilder_.getMessageList();
            }
          }
          public int getTriggerCount() {
            if (triggerBuilder_ == null) {
              return trigger_.size();
            } else {
              return triggerBuilder_.getCount();
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger getTrigger(int index) {
            if (triggerBuilder_ == null) {
              return trigger_.get(index);
            } else {
              return triggerBuilder_.getMessage(index);
            }
          }
          public Builder setTrigger(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger value) {
            if (triggerBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureTriggerIsMutable();
              trigger_.set(index, value);
              onChanged();
            } else {
              triggerBuilder_.setMessage(index, value);
            }
            return this;
          }
          public Builder setTrigger(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder builderForValue) {
            if (triggerBuilder_ == null) {
              ensureTriggerIsMutable();
              trigger_.set(index, builderForValue.build());
              onChanged();
            } else {
              triggerBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addTrigger(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger value) {
            if (triggerBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureTriggerIsMutable();
              trigger_.add(value);
              onChanged();
            } else {
              triggerBuilder_.addMessage(value);
            }
            return this;
          }
          public Builder addTrigger(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger value) {
            if (triggerBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureTriggerIsMutable();
              trigger_.add(index, value);
              onChanged();
            } else {
              triggerBuilder_.addMessage(index, value);
            }
            return this;
          }
          public Builder addTrigger(
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder builderForValue) {
            if (triggerBuilder_ == null) {
              ensureTriggerIsMutable();
              trigger_.add(builderForValue.build());
              onChanged();
            } else {
              triggerBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          public Builder addTrigger(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder builderForValue) {
            if (triggerBuilder_ == null) {
              ensureTriggerIsMutable();
              trigger_.add(index, builderForValue.build());
              onChanged();
            } else {
              triggerBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addAllTrigger(
              java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger> values) {
            if (triggerBuilder_ == null) {
              ensureTriggerIsMutable();
              super.addAll(values, trigger_);
              onChanged();
            } else {
              triggerBuilder_.addAllMessages(values);
            }
            return this;
          }
          public Builder clearTrigger() {
            if (triggerBuilder_ == null) {
              trigger_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
              onChanged();
            } else {
              triggerBuilder_.clear();
            }
            return this;
          }
          public Builder removeTrigger(int index) {
            if (triggerBuilder_ == null) {
              ensureTriggerIsMutable();
              trigger_.remove(index);
              onChanged();
            } else {
              triggerBuilder_.remove(index);
            }
            return this;
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder getTriggerBuilder(
              int index) {
            return getTriggerFieldBuilder().getBuilder(index);
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder getTriggerOrBuilder(
              int index) {
            if (triggerBuilder_ == null) {
              return trigger_.get(index);  } else {
              return triggerBuilder_.getMessageOrBuilder(index);
            }
          }
          public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder> 
               getTriggerOrBuilderList() {
            if (triggerBuilder_ != null) {
              return triggerBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(trigger_);
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder addTriggerBuilder() {
            return getTriggerFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.getDefaultInstance());
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder addTriggerBuilder(
              int index) {
            return getTriggerFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.getDefaultInstance());
          }
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder> 
               getTriggerBuilderList() {
            return getTriggerFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder> 
              getTriggerFieldBuilder() {
            if (triggerBuilder_ == null) {
              triggerBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder>(
                      trigger_,
                      ((bitField0_ & 0x00000001) == 0x00000001),
                      getParentForChildren(),
                      isClean());
              trigger_ = null;
            }
            return triggerBuilder_;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode)
        }
        
        static {
          defaultInstance = new JoinNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode)
      }
      
      public interface StateNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // repeated int64 timer_instance_id = 1;
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        int getTimerInstanceIdCount();
        long getTimerInstanceId(int index);
      }
      public static final class StateNode extends
          com.google.protobuf.GeneratedMessage
          implements StateNodeOrBuilder {
        // Use StateNode.newBuilder() to construct.
        private StateNode(Builder builder) {
          super(builder);
        }
        private StateNode(boolean noInit) {}
        
        private static final StateNode defaultInstance;
        public static StateNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public StateNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_fieldAccessorTable;
        }
        
        // repeated int64 timer_instance_id = 1;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        private java.util.List<java.lang.Long> timerInstanceId_;
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.get(index);
        }
        
        private void initFields() {
          timerInstanceId_ = java.util.Collections.emptyList();;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(1, timerInstanceId_.get(i));
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          {
            int dataSize = 0;
            for (int i = 0; i < timerInstanceId_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt64SizeNoTag(timerInstanceId_.get(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode(this);
            int from_bitField0_ = bitField0_;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.timerInstanceId_ = timerInstanceId_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance()) return this;
            if (!other.timerInstanceId_.isEmpty()) {
              if (timerInstanceId_.isEmpty()) {
                timerInstanceId_ = other.timerInstanceId_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.addAll(other.timerInstanceId_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 8: {
                  ensureTimerInstanceIdIsMutable();
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  while (input.getBytesUntilLimit() > 0) {
                    addTimerInstanceId(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // repeated int64 timer_instance_id = 1;
          private java.util.List<java.lang.Long> timerInstanceId_ = java.util.Collections.emptyList();;
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = new java.util.ArrayList<java.lang.Long>(timerInstanceId_);
              bitField0_ |= 0x00000001;
             }
          }
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode)
        }
        
        static {
          defaultInstance = new StateNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode)
      }
      
      public interface CompositeContextNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // repeated int64 timer_instance_id = 2;
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        int getTimerInstanceIdCount();
        long getTimerInstanceId(int index);
        
        // repeated .org.jbpm.marshalling.Variable variable = 3;
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> 
            getVariableList();
        org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index);
        int getVariableCount();
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
            getVariableOrBuilderList();
        org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
            int index);
        
        // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> 
            getNodeInstanceList();
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index);
        int getNodeInstanceCount();
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
            getNodeInstanceOrBuilderList();
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
            int index);
        
        // repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> 
            getExclusiveGroupList();
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index);
        int getExclusiveGroupCount();
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
            getExclusiveGroupOrBuilderList();
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
            int index);
      }
      public static final class CompositeContextNode extends
          com.google.protobuf.GeneratedMessage
          implements CompositeContextNodeOrBuilder {
        // Use CompositeContextNode.newBuilder() to construct.
        private CompositeContextNode(Builder builder) {
          super(builder);
        }
        private CompositeContextNode(boolean noInit) {}
        
        private static final CompositeContextNode defaultInstance;
        public static CompositeContextNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public CompositeContextNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_fieldAccessorTable;
        }
        
        // repeated int64 timer_instance_id = 2;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        private java.util.List<java.lang.Long> timerInstanceId_;
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.get(index);
        }
        
        // repeated .org.jbpm.marshalling.Variable variable = 3;
        public static final int VARIABLE_FIELD_NUMBER = 3;
        private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_;
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
          return variable_;
        }
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
            getVariableOrBuilderList() {
          return variable_;
        }
        public int getVariableCount() {
          return variable_.size();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
          return variable_.get(index);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
            int index) {
          return variable_.get(index);
        }
        
        // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;
        public static final int NODE_INSTANCE_FIELD_NUMBER = 4;
        private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> nodeInstance_;
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> getNodeInstanceList() {
          return nodeInstance_;
        }
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
            getNodeInstanceOrBuilderList() {
          return nodeInstance_;
        }
        public int getNodeInstanceCount() {
          return nodeInstance_.size();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
          return nodeInstance_.get(index);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
            int index) {
          return nodeInstance_.get(index);
        }
        
        // repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;
        public static final int EXCLUSIVE_GROUP_FIELD_NUMBER = 5;
        private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> exclusiveGroup_;
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> getExclusiveGroupList() {
          return exclusiveGroup_;
        }
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
            getExclusiveGroupOrBuilderList() {
          return exclusiveGroup_;
        }
        public int getExclusiveGroupCount() {
          return exclusiveGroup_.size();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index) {
          return exclusiveGroup_.get(index);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
            int index) {
          return exclusiveGroup_.get(index);
        }
        
        private void initFields() {
          timerInstanceId_ = java.util.Collections.emptyList();;
          variable_ = java.util.Collections.emptyList();
          nodeInstance_ = java.util.Collections.emptyList();
          exclusiveGroup_ = java.util.Collections.emptyList();
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(2, timerInstanceId_.get(i));
          }
          for (int i = 0; i < variable_.size(); i++) {
            output.writeMessage(3, variable_.get(i));
          }
          for (int i = 0; i < nodeInstance_.size(); i++) {
            output.writeMessage(4, nodeInstance_.get(i));
          }
          for (int i = 0; i < exclusiveGroup_.size(); i++) {
            output.writeMessage(5, exclusiveGroup_.get(i));
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          {
            int dataSize = 0;
            for (int i = 0; i < timerInstanceId_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt64SizeNoTag(timerInstanceId_.get(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          for (int i = 0; i < variable_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(3, variable_.get(i));
          }
          for (int i = 0; i < nodeInstance_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(4, nodeInstance_.get(i));
          }
          for (int i = 0; i < exclusiveGroup_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(5, exclusiveGroup_.get(i));
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
              getVariableFieldBuilder();
              getNodeInstanceFieldBuilder();
              getExclusiveGroupFieldBuilder();
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000001);
            if (variableBuilder_ == null) {
              variable_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              variableBuilder_.clear();
            }
            if (nodeInstanceBuilder_ == null) {
              nodeInstance_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              nodeInstanceBuilder_.clear();
            }
            if (exclusiveGroupBuilder_ == null) {
              exclusiveGroup_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              exclusiveGroupBuilder_.clear();
            }
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode(this);
            int from_bitField0_ = bitField0_;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.timerInstanceId_ = timerInstanceId_;
            if (variableBuilder_ == null) {
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                variable_ = java.util.Collections.unmodifiableList(variable_);
                bitField0_ = (bitField0_ & ~0x00000002);
              }
              result.variable_ = variable_;
            } else {
              result.variable_ = variableBuilder_.build();
            }
            if (nodeInstanceBuilder_ == null) {
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
                bitField0_ = (bitField0_ & ~0x00000004);
              }
              result.nodeInstance_ = nodeInstance_;
            } else {
              result.nodeInstance_ = nodeInstanceBuilder_.build();
            }
            if (exclusiveGroupBuilder_ == null) {
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                exclusiveGroup_ = java.util.Collections.unmodifiableList(exclusiveGroup_);
                bitField0_ = (bitField0_ & ~0x00000008);
              }
              result.exclusiveGroup_ = exclusiveGroup_;
            } else {
              result.exclusiveGroup_ = exclusiveGroupBuilder_.build();
            }
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance()) return this;
            if (!other.timerInstanceId_.isEmpty()) {
              if (timerInstanceId_.isEmpty()) {
                timerInstanceId_ = other.timerInstanceId_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.addAll(other.timerInstanceId_);
              }
              onChanged();
            }
            if (variableBuilder_ == null) {
              if (!other.variable_.isEmpty()) {
                if (variable_.isEmpty()) {
                  variable_ = other.variable_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                } else {
                  ensureVariableIsMutable();
                  variable_.addAll(other.variable_);
                }
                onChanged();
              }
            } else {
              if (!other.variable_.isEmpty()) {
                if (variableBuilder_.isEmpty()) {
                  variableBuilder_.dispose();
                  variableBuilder_ = null;
                  variable_ = other.variable_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                  variableBuilder_ = 
                    com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                       getVariableFieldBuilder() : null;
                } else {
                  variableBuilder_.addAllMessages(other.variable_);
                }
              }
            }
            if (nodeInstanceBuilder_ == null) {
              if (!other.nodeInstance_.isEmpty()) {
                if (nodeInstance_.isEmpty()) {
                  nodeInstance_ = other.nodeInstance_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                } else {
                  ensureNodeInstanceIsMutable();
                  nodeInstance_.addAll(other.nodeInstance_);
                }
                onChanged();
              }
            } else {
              if (!other.nodeInstance_.isEmpty()) {
                if (nodeInstanceBuilder_.isEmpty()) {
                  nodeInstanceBuilder_.dispose();
                  nodeInstanceBuilder_ = null;
                  nodeInstance_ = other.nodeInstance_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                  nodeInstanceBuilder_ = 
                    com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                       getNodeInstanceFieldBuilder() : null;
                } else {
                  nodeInstanceBuilder_.addAllMessages(other.nodeInstance_);
                }
              }
            }
            if (exclusiveGroupBuilder_ == null) {
              if (!other.exclusiveGroup_.isEmpty()) {
                if (exclusiveGroup_.isEmpty()) {
                  exclusiveGroup_ = other.exclusiveGroup_;
                  bitField0_ = (bitField0_ & ~0x00000008);
                } else {
                  ensureExclusiveGroupIsMutable();
                  exclusiveGroup_.addAll(other.exclusiveGroup_);
                }
                onChanged();
              }
            } else {
              if (!other.exclusiveGroup_.isEmpty()) {
                if (exclusiveGroupBuilder_.isEmpty()) {
                  exclusiveGroupBuilder_.dispose();
                  exclusiveGroupBuilder_ = null;
                  exclusiveGroup_ = other.exclusiveGroup_;
                  bitField0_ = (bitField0_ & ~0x00000008);
                  exclusiveGroupBuilder_ = 
                    com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                       getExclusiveGroupFieldBuilder() : null;
                } else {
                  exclusiveGroupBuilder_.addAllMessages(other.exclusiveGroup_);
                }
              }
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 16: {
                  ensureTimerInstanceIdIsMutable();
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  while (input.getBytesUntilLimit() > 0) {
                    addTimerInstanceId(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 26: {
                  org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.Variable.newBuilder();
                  input.readMessage(subBuilder, extensionRegistry);
                  addVariable(subBuilder.buildPartial());
                  break;
                }
                case 34: {
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.newBuilder();
                  input.readMessage(subBuilder, extensionRegistry);
                  addNodeInstance(subBuilder.buildPartial());
                  break;
                }
                case 42: {
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.newBuilder();
                  input.readMessage(subBuilder, extensionRegistry);
                  addExclusiveGroup(subBuilder.buildPartial());
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // repeated int64 timer_instance_id = 2;
          private java.util.List<java.lang.Long> timerInstanceId_ = java.util.Collections.emptyList();;
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = new java.util.ArrayList<java.lang.Long>(timerInstanceId_);
              bitField0_ |= 0x00000001;
             }
          }
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = java.util.Collections.emptyList();;
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
          
          // repeated .org.jbpm.marshalling.Variable variable = 3;
          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_ =
            java.util.Collections.emptyList();
          private void ensureVariableIsMutable() {
            if (!((bitField0_ & 0x00000002) == 0x00000002)) {
              variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>(variable_);
              bitField0_ |= 0x00000002;
             }
          }
          
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> variableBuilder_;
          
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
            if (variableBuilder_ == null) {
              return java.util.Collections.unmodifiableList(variable_);
            } else {
              return variableBuilder_.getMessageList();
            }
          }
          public int getVariableCount() {
            if (variableBuilder_ == null) {
              return variable_.size();
            } else {
              return variableBuilder_.getCount();
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
            if (variableBuilder_ == null) {
              return variable_.get(index);
            } else {
              return variableBuilder_.getMessage(index);
            }
          }
          public Builder setVariable(
              int index, org.jbpm.marshalling.impl.JBPMMessages.Variable value) {
            if (variableBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureVariableIsMutable();
              variable_.set(index, value);
              onChanged();
            } else {
              variableBuilder_.setMessage(index, value);
            }
            return this;
          }
          public Builder setVariable(
              int index, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder builderForValue) {
            if (variableBuilder_ == null) {
              ensureVariableIsMutable();
              variable_.set(index, builderForValue.build());
              onChanged();
            } else {
              variableBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addVariable(org.jbpm.marshalling.impl.JBPMMessages.Variable value) {
            if (variableBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureVariableIsMutable();
              variable_.add(value);
              onChanged();
            } else {
              variableBuilder_.addMessage(value);
            }
            return this;
          }
          public Builder addVariable(
              int index, org.jbpm.marshalling.impl.JBPMMessages.Variable value) {
            if (variableBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureVariableIsMutable();
              variable_.add(index, value);
              onChanged();
            } else {
              variableBuilder_.addMessage(index, value);
            }
            return this;
          }
          public Builder addVariable(
              org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder builderForValue) {
            if (variableBuilder_ == null) {
              ensureVariableIsMutable();
              variable_.add(builderForValue.build());
              onChanged();
            } else {
              variableBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          public Builder addVariable(
              int index, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder builderForValue) {
            if (variableBuilder_ == null) {
              ensureVariableIsMutable();
              variable_.add(index, builderForValue.build());
              onChanged();
            } else {
              variableBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addAllVariable(
              java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.Variable> values) {
            if (variableBuilder_ == null) {
              ensureVariableIsMutable();
              super.addAll(values, variable_);
              onChanged();
            } else {
              variableBuilder_.addAllMessages(values);
            }
            return this;
          }
          public Builder clearVariable() {
            if (variableBuilder_ == null) {
              variable_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
              onChanged();
            } else {
              variableBuilder_.clear();
            }
            return this;
          }
          public Builder removeVariable(int index) {
            if (variableBuilder_ == null) {
              ensureVariableIsMutable();
              variable_.remove(index);
              onChanged();
            } else {
              variableBuilder_.remove(index);
            }
            return this;
          }
          public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder getVariableBuilder(
              int index) {
            return getVariableFieldBuilder().getBuilder(index);
          }
          public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
              int index) {
            if (variableBuilder_ == null) {
              return variable_.get(index);  } else {
              return variableBuilder_.getMessageOrBuilder(index);
            }
          }
          public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
               getVariableOrBuilderList() {
            if (variableBuilder_ != null) {
              return variableBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(variable_);
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder() {
            return getVariableFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
          }
          public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder(
              int index) {
            return getVariableFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
          }
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder> 
               getVariableBuilderList() {
            return getVariableFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
              getVariableFieldBuilder() {
            if (variableBuilder_ == null) {
              variableBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                  org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder>(
                      variable_,
                      ((bitField0_ & 0x00000002) == 0x00000002),
                      getParentForChildren(),
                      isClean());
              variable_ = null;
            }
            return variableBuilder_;
          }
          
          // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;
          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> nodeInstance_ =
            java.util.Collections.emptyList();
          private void ensureNodeInstanceIsMutable() {
            if (!((bitField0_ & 0x00000004) == 0x00000004)) {
              nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>(nodeInstance_);
              bitField0_ |= 0x00000004;
             }
          }
          
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> nodeInstanceBuilder_;
          
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> getNodeInstanceList() {
            if (nodeInstanceBuilder_ == null) {
              return java.util.Collections.unmodifiableList(nodeInstance_);
            } else {
              return nodeInstanceBuilder_.getMessageList();
            }
          }
          public int getNodeInstanceCount() {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.size();
            } else {
              return nodeInstanceBuilder_.getCount();
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.get(index);
            } else {
              return nodeInstanceBuilder_.getMessage(index);
            }
          }
          public Builder setNodeInstance(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance value) {
            if (nodeInstanceBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureNodeInstanceIsMutable();
              nodeInstance_.set(index, value);
              onChanged();
            } else {
              nodeInstanceBuilder_.setMessage(index, value);
            }
            return this;
          }
          public Builder setNodeInstance(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder builderForValue) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.set(index, builderForValue.build());
              onChanged();
            } else {
              nodeInstanceBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addNodeInstance(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance value) {
            if (nodeInstanceBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureNodeInstanceIsMutable();
              nodeInstance_.add(value);
              onChanged();
            } else {
              nodeInstanceBuilder_.addMessage(value);
            }
            return this;
          }
          public Builder addNodeInstance(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance value) {
            if (nodeInstanceBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureNodeInstanceIsMutable();
              nodeInstance_.add(index, value);
              onChanged();
            } else {
              nodeInstanceBuilder_.addMessage(index, value);
            }
            return this;
          }
          public Builder addNodeInstance(
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder builderForValue) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.add(builderForValue.build());
              onChanged();
            } else {
              nodeInstanceBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          public Builder addNodeInstance(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder builderForValue) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.add(index, builderForValue.build());
              onChanged();
            } else {
              nodeInstanceBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addAllNodeInstance(
              java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> values) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              super.addAll(values, nodeInstance_);
              onChanged();
            } else {
              nodeInstanceBuilder_.addAllMessages(values);
            }
            return this;
          }
          public Builder clearNodeInstance() {
            if (nodeInstanceBuilder_ == null) {
              nodeInstance_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000004);
              onChanged();
            } else {
              nodeInstanceBuilder_.clear();
            }
            return this;
          }
          public Builder removeNodeInstance(int index) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.remove(index);
              onChanged();
            } else {
              nodeInstanceBuilder_.remove(index);
            }
            return this;
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder getNodeInstanceBuilder(
              int index) {
            return getNodeInstanceFieldBuilder().getBuilder(index);
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
              int index) {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.get(index);  } else {
              return nodeInstanceBuilder_.getMessageOrBuilder(index);
            }
          }
          public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
               getNodeInstanceOrBuilderList() {
            if (nodeInstanceBuilder_ != null) {
              return nodeInstanceBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(nodeInstance_);
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder() {
            return getNodeInstanceFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder(
              int index) {
            return getNodeInstanceFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
          }
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder> 
               getNodeInstanceBuilderList() {
            return getNodeInstanceFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
              getNodeInstanceFieldBuilder() {
            if (nodeInstanceBuilder_ == null) {
              nodeInstanceBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder>(
                      nodeInstance_,
                      ((bitField0_ & 0x00000004) == 0x00000004),
                      getParentForChildren(),
                      isClean());
              nodeInstance_ = null;
            }
            return nodeInstanceBuilder_;
          }
          
          // repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;
          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> exclusiveGroup_ =
            java.util.Collections.emptyList();
          private void ensureExclusiveGroupIsMutable() {
            if (!((bitField0_ & 0x00000008) == 0x00000008)) {
              exclusiveGroup_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance>(exclusiveGroup_);
              bitField0_ |= 0x00000008;
             }
          }
          
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> exclusiveGroupBuilder_;
          
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> getExclusiveGroupList() {
            if (exclusiveGroupBuilder_ == null) {
              return java.util.Collections.unmodifiableList(exclusiveGroup_);
            } else {
              return exclusiveGroupBuilder_.getMessageList();
            }
          }
          public int getExclusiveGroupCount() {
            if (exclusiveGroupBuilder_ == null) {
              return exclusiveGroup_.size();
            } else {
              return exclusiveGroupBuilder_.getCount();
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index) {
            if (exclusiveGroupBuilder_ == null) {
              return exclusiveGroup_.get(index);
            } else {
              return exclusiveGroupBuilder_.getMessage(index);
            }
          }
          public Builder setExclusiveGroup(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance value) {
            if (exclusiveGroupBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.set(index, value);
              onChanged();
            } else {
              exclusiveGroupBuilder_.setMessage(index, value);
            }
            return this;
          }
          public Builder setExclusiveGroup(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder builderForValue) {
            if (exclusiveGroupBuilder_ == null) {
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.set(index, builderForValue.build());
              onChanged();
            } else {
              exclusiveGroupBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addExclusiveGroup(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance value) {
            if (exclusiveGroupBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.add(value);
              onChanged();
            } else {
              exclusiveGroupBuilder_.addMessage(value);
            }
            return this;
          }
          public Builder addExclusiveGroup(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance value) {
            if (exclusiveGroupBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.add(index, value);
              onChanged();
            } else {
              exclusiveGroupBuilder_.addMessage(index, value);
            }
            return this;
          }
          public Builder addExclusiveGroup(
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder builderForValue) {
            if (exclusiveGroupBuilder_ == null) {
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.add(builderForValue.build());
              onChanged();
            } else {
              exclusiveGroupBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          public Builder addExclusiveGroup(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder builderForValue) {
            if (exclusiveGroupBuilder_ == null) {
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.add(index, builderForValue.build());
              onChanged();
            } else {
              exclusiveGroupBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addAllExclusiveGroup(
              java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> values) {
            if (exclusiveGroupBuilder_ == null) {
              ensureExclusiveGroupIsMutable();
              super.addAll(values, exclusiveGroup_);
              onChanged();
            } else {
              exclusiveGroupBuilder_.addAllMessages(values);
            }
            return this;
          }
          public Builder clearExclusiveGroup() {
            if (exclusiveGroupBuilder_ == null) {
              exclusiveGroup_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000008);
              onChanged();
            } else {
              exclusiveGroupBuilder_.clear();
            }
            return this;
          }
          public Builder removeExclusiveGroup(int index) {
            if (exclusiveGroupBuilder_ == null) {
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.remove(index);
              onChanged();
            } else {
              exclusiveGroupBuilder_.remove(index);
            }
            return this;
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder getExclusiveGroupBuilder(
              int index) {
            return getExclusiveGroupFieldBuilder().getBuilder(index);
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
              int index) {
            if (exclusiveGroupBuilder_ == null) {
              return exclusiveGroup_.get(index);  } else {
              return exclusiveGroupBuilder_.getMessageOrBuilder(index);
            }
          }
          public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
               getExclusiveGroupOrBuilderList() {
            if (exclusiveGroupBuilder_ != null) {
              return exclusiveGroupBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(exclusiveGroup_);
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder addExclusiveGroupBuilder() {
            return getExclusiveGroupFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance());
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder addExclusiveGroupBuilder(
              int index) {
            return getExclusiveGroupFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance());
          }
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder> 
               getExclusiveGroupBuilderList() {
            return getExclusiveGroupFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
              getExclusiveGroupFieldBuilder() {
            if (exclusiveGroupBuilder_ == null) {
              exclusiveGroupBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder>(
                      exclusiveGroup_,
                      ((bitField0_ & 0x00000008) == 0x00000008),
                      getParentForChildren(),
                      isClean());
              exclusiveGroup_ = null;
            }
            return exclusiveGroupBuilder_;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode)
        }
        
        static {
          defaultInstance = new CompositeContextNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode)
      }
      
      public interface ForEachNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> 
            getNodeInstanceList();
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index);
        int getNodeInstanceCount();
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
            getNodeInstanceOrBuilderList();
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
            int index);
      }
      public static final class ForEachNode extends
          com.google.protobuf.GeneratedMessage
          implements ForEachNodeOrBuilder {
        // Use ForEachNode.newBuilder() to construct.
        private ForEachNode(Builder builder) {
          super(builder);
        }
        private ForEachNode(boolean noInit) {}
        
        private static final ForEachNode defaultInstance;
        public static ForEachNode getDefaultInstance() {
          return defaultInstance;
        }
        
        public ForEachNode getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_fieldAccessorTable;
        }
        
        // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;
        public static final int NODE_INSTANCE_FIELD_NUMBER = 1;
        private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> nodeInstance_;
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> getNodeInstanceList() {
          return nodeInstance_;
        }
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
            getNodeInstanceOrBuilderList() {
          return nodeInstance_;
        }
        public int getNodeInstanceCount() {
          return nodeInstance_.size();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
          return nodeInstance_.get(index);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
            int index) {
          return nodeInstance_.get(index);
        }
        
        private void initFields() {
          nodeInstance_ = java.util.Collections.emptyList();
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          for (int i = 0; i < nodeInstance_.size(); i++) {
            output.writeMessage(1, nodeInstance_.get(i));
          }
          getUnknownFields().writeTo(output);
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          for (int i = 0; i < nodeInstance_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(1, nodeInstance_.get(i));
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        @java.lang.Override
        protected Object writeReplace() throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_descriptor;
          }
          
          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_fieldAccessorTable;
          }
          
          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
              getNodeInstanceFieldBuilder();
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            if (nodeInstanceBuilder_ == null) {
              nodeInstance_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              nodeInstanceBuilder_.clear();
            }
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDescriptor();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance();
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode(this);
            int from_bitField0_ = bitField0_;
            if (nodeInstanceBuilder_ == null) {
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
                bitField0_ = (bitField0_ & ~0x00000001);
              }
              result.nodeInstance_ = nodeInstance_;
            } else {
              result.nodeInstance_ = nodeInstanceBuilder_.build();
            }
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance()) return this;
            if (nodeInstanceBuilder_ == null) {
              if (!other.nodeInstance_.isEmpty()) {
                if (nodeInstance_.isEmpty()) {
                  nodeInstance_ = other.nodeInstance_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                } else {
                  ensureNodeInstanceIsMutable();
                  nodeInstance_.addAll(other.nodeInstance_);
                }
                onChanged();
              }
            } else {
              if (!other.nodeInstance_.isEmpty()) {
                if (nodeInstanceBuilder_.isEmpty()) {
                  nodeInstanceBuilder_.dispose();
                  nodeInstanceBuilder_ = null;
                  nodeInstance_ = other.nodeInstance_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                  nodeInstanceBuilder_ = 
                    com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                       getNodeInstanceFieldBuilder() : null;
                } else {
                  nodeInstanceBuilder_.addAllMessages(other.nodeInstance_);
                }
              }
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 10: {
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.newBuilder();
                  input.readMessage(subBuilder, extensionRegistry);
                  addNodeInstance(subBuilder.buildPartial());
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;
          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> nodeInstance_ =
            java.util.Collections.emptyList();
          private void ensureNodeInstanceIsMutable() {
            if (!((bitField0_ & 0x00000001) == 0x00000001)) {
              nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>(nodeInstance_);
              bitField0_ |= 0x00000001;
             }
          }
          
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> nodeInstanceBuilder_;
          
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> getNodeInstanceList() {
            if (nodeInstanceBuilder_ == null) {
              return java.util.Collections.unmodifiableList(nodeInstance_);
            } else {
              return nodeInstanceBuilder_.getMessageList();
            }
          }
          public int getNodeInstanceCount() {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.size();
            } else {
              return nodeInstanceBuilder_.getCount();
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.get(index);
            } else {
              return nodeInstanceBuilder_.getMessage(index);
            }
          }
          public Builder setNodeInstance(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance value) {
            if (nodeInstanceBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureNodeInstanceIsMutable();
              nodeInstance_.set(index, value);
              onChanged();
            } else {
              nodeInstanceBuilder_.setMessage(index, value);
            }
            return this;
          }
          public Builder setNodeInstance(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder builderForValue) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.set(index, builderForValue.build());
              onChanged();
            } else {
              nodeInstanceBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addNodeInstance(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance value) {
            if (nodeInstanceBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureNodeInstanceIsMutable();
              nodeInstance_.add(value);
              onChanged();
            } else {
              nodeInstanceBuilder_.addMessage(value);
            }
            return this;
          }
          public Builder addNodeInstance(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance value) {
            if (nodeInstanceBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureNodeInstanceIsMutable();
              nodeInstance_.add(index, value);
              onChanged();
            } else {
              nodeInstanceBuilder_.addMessage(index, value);
            }
            return this;
          }
          public Builder addNodeInstance(
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder builderForValue) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.add(builderForValue.build());
              onChanged();
            } else {
              nodeInstanceBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          public Builder addNodeInstance(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder builderForValue) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.add(index, builderForValue.build());
              onChanged();
            } else {
              nodeInstanceBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          public Builder addAllNodeInstance(
              java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> values) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              super.addAll(values, nodeInstance_);
              onChanged();
            } else {
              nodeInstanceBuilder_.addAllMessages(values);
            }
            return this;
          }
          public Builder clearNodeInstance() {
            if (nodeInstanceBuilder_ == null) {
              nodeInstance_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
              onChanged();
            } else {
              nodeInstanceBuilder_.clear();
            }
            return this;
          }
          public Builder removeNodeInstance(int index) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.remove(index);
              onChanged();
            } else {
              nodeInstanceBuilder_.remove(index);
            }
            return this;
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder getNodeInstanceBuilder(
              int index) {
            return getNodeInstanceFieldBuilder().getBuilder(index);
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
              int index) {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.get(index);  } else {
              return nodeInstanceBuilder_.getMessageOrBuilder(index);
            }
          }
          public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
               getNodeInstanceOrBuilderList() {
            if (nodeInstanceBuilder_ != null) {
              return nodeInstanceBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(nodeInstance_);
            }
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder() {
            return getNodeInstanceFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
          }
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder(
              int index) {
            return getNodeInstanceFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
          }
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder> 
               getNodeInstanceBuilderList() {
            return getNodeInstanceFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
              getNodeInstanceFieldBuilder() {
            if (nodeInstanceBuilder_ == null) {
              nodeInstanceBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder>(
                      nodeInstance_,
                      ((bitField0_ & 0x00000001) == 0x00000001),
                      getParentForChildren(),
                      isClean());
              nodeInstance_ = null;
            }
            return nodeInstanceBuilder_;
          }
          
          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode)
        }
        
        static {
          defaultInstance = new ForEachNode(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode)
      }
      
      private int bitField0_;
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;
      public static final int TYPE_FIELD_NUMBER = 1;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType type_;
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType getType() {
        return type_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;
      public static final int RULE_SET_FIELD_NUMBER = 2;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode ruleSet_;
      public boolean hasRuleSet() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getRuleSet() {
        return ruleSet_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder getRuleSetOrBuilder() {
        return ruleSet_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;
      public static final int HUMAN_TASK_FIELD_NUMBER = 3;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode humanTask_;
      public boolean hasHumanTask() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getHumanTask() {
        return humanTask_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder getHumanTaskOrBuilder() {
        return humanTask_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;
      public static final int WORK_ITEM_FIELD_NUMBER = 4;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode workItem_;
      public boolean hasWorkItem() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getWorkItem() {
        return workItem_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder getWorkItemOrBuilder() {
        return workItem_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;
      public static final int SUB_PROCESS_FIELD_NUMBER = 5;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode subProcess_;
      public boolean hasSubProcess() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getSubProcess() {
        return subProcess_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder getSubProcessOrBuilder() {
        return subProcess_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;
      public static final int MILESTONE_FIELD_NUMBER = 6;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode milestone_;
      public boolean hasMilestone() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getMilestone() {
        return milestone_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder getMilestoneOrBuilder() {
        return milestone_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;
      public static final int EVENT_FIELD_NUMBER = 7;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode event_;
      public boolean hasEvent() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getEvent() {
        return event_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder getEventOrBuilder() {
        return event_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;
      public static final int TIMER_FIELD_NUMBER = 8;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode timer_;
      public boolean hasTimer() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getTimer() {
        return timer_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder getTimerOrBuilder() {
        return timer_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;
      public static final int JOIN_FIELD_NUMBER = 9;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode join_;
      public boolean hasJoin() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getJoin() {
        return join_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder getJoinOrBuilder() {
        return join_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;
      public static final int STATE_FIELD_NUMBER = 10;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode state_;
      public boolean hasState() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getState() {
        return state_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder getStateOrBuilder() {
        return state_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;
      public static final int COMPOSITE_FIELD_NUMBER = 11;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode composite_;
      public boolean hasComposite() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getComposite() {
        return composite_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder getCompositeOrBuilder() {
        return composite_;
      }
      
      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;
      public static final int FOR_EACH_FIELD_NUMBER = 12;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode forEach_;
      public boolean hasForEach() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getForEach() {
        return forEach_;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder getForEachOrBuilder() {
        return forEach_;
      }
      
      private void initFields() {
        type_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType.RULE_SET_NODE;
        ruleSet_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance();
        humanTask_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance();
        workItem_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance();
        subProcess_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance();
        milestone_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance();
        event_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance();
        timer_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance();
        join_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance();
        state_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance();
        composite_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance();
        forEach_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, type_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, ruleSet_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, humanTask_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, workItem_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, subProcess_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeMessage(6, milestone_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeMessage(7, event_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          output.writeMessage(8, timer_);
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          output.writeMessage(9, join_);
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          output.writeMessage(10, state_);
        }
        if (((bitField0_ & 0x00000400) == 0x00000400)) {
          output.writeMessage(11, composite_);
        }
        if (((bitField0_ & 0x00000800) == 0x00000800)) {
          output.writeMessage(12, forEach_);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, type_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, ruleSet_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, humanTask_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, workItem_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, subProcess_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, milestone_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, event_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(8, timer_);
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(9, join_);
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(10, state_);
        }
        if (((bitField0_ & 0x00000400) == 0x00000400)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(11, composite_);
        }
        if (((bitField0_ & 0x00000800) == 0x00000800)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(12, forEach_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      @java.lang.Override
      protected Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_fieldAccessorTable;
        }
        
        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getRuleSetFieldBuilder();
            getHumanTaskFieldBuilder();
            getWorkItemFieldBuilder();
            getSubProcessFieldBuilder();
            getMilestoneFieldBuilder();
            getEventFieldBuilder();
            getTimerFieldBuilder();
            getJoinFieldBuilder();
            getStateFieldBuilder();
            getCompositeFieldBuilder();
            getForEachFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          type_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType.RULE_SET_NODE;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (ruleSetBuilder_ == null) {
            ruleSet_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance();
          } else {
            ruleSetBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          if (humanTaskBuilder_ == null) {
            humanTask_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance();
          } else {
            humanTaskBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          if (workItemBuilder_ == null) {
            workItem_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance();
          } else {
            workItemBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          if (subProcessBuilder_ == null) {
            subProcess_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance();
          } else {
            subProcessBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          if (milestoneBuilder_ == null) {
            milestone_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance();
          } else {
            milestoneBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          if (eventBuilder_ == null) {
            event_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance();
          } else {
            eventBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000040);
          if (timerBuilder_ == null) {
            timer_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance();
          } else {
            timerBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000080);
          if (joinBuilder_ == null) {
            join_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance();
          } else {
            joinBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000100);
          if (stateBuilder_ == null) {
            state_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance();
          } else {
            stateBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000200);
          if (compositeBuilder_ == null) {
            composite_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance();
          } else {
            compositeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000400);
          if (forEachBuilder_ == null) {
            forEach_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance();
          } else {
            forEachBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000800);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDescriptor();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent build() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent buildPartial() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.type_ = type_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (ruleSetBuilder_ == null) {
            result.ruleSet_ = ruleSet_;
          } else {
            result.ruleSet_ = ruleSetBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          if (humanTaskBuilder_ == null) {
            result.humanTask_ = humanTask_;
          } else {
            result.humanTask_ = humanTaskBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          if (workItemBuilder_ == null) {
            result.workItem_ = workItem_;
          } else {
            result.workItem_ = workItemBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          if (subProcessBuilder_ == null) {
            result.subProcess_ = subProcess_;
          } else {
            result.subProcess_ = subProcessBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          if (milestoneBuilder_ == null) {
            result.milestone_ = milestone_;
          } else {
            result.milestone_ = milestoneBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          if (eventBuilder_ == null) {
            result.event_ = event_;
          } else {
            result.event_ = eventBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000080;
          }
          if (timerBuilder_ == null) {
            result.timer_ = timer_;
          } else {
            result.timer_ = timerBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
            to_bitField0_ |= 0x00000100;
          }
          if (joinBuilder_ == null) {
            result.join_ = join_;
          } else {
            result.join_ = joinBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
            to_bitField0_ |= 0x00000200;
          }
          if (stateBuilder_ == null) {
            result.state_ = state_;
          } else {
            result.state_ = stateBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
            to_bitField0_ |= 0x00000400;
          }
          if (compositeBuilder_ == null) {
            result.composite_ = composite_;
          } else {
            result.composite_ = compositeBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
            to_bitField0_ |= 0x00000800;
          }
          if (forEachBuilder_ == null) {
            result.forEach_ = forEach_;
          } else {
            result.forEach_ = forEachBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent) {
            return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent other) {
          if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance()) return this;
          if (other.hasType()) {
            setType(other.getType());
          }
          if (other.hasRuleSet()) {
            mergeRuleSet(other.getRuleSet());
          }
          if (other.hasHumanTask()) {
            mergeHumanTask(other.getHumanTask());
          }
          if (other.hasWorkItem()) {
            mergeWorkItem(other.getWorkItem());
          }
          if (other.hasSubProcess()) {
            mergeSubProcess(other.getSubProcess());
          }
          if (other.hasMilestone()) {
            mergeMilestone(other.getMilestone());
          }
          if (other.hasEvent()) {
            mergeEvent(other.getEvent());
          }
          if (other.hasTimer()) {
            mergeTimer(other.getTimer());
          }
          if (other.hasJoin()) {
            mergeJoin(other.getJoin());
          }
          if (other.hasState()) {
            mergeState(other.getState());
          }
          if (other.hasComposite()) {
            mergeComposite(other.getComposite());
          }
          if (other.hasForEach()) {
            mergeForEach(other.getForEach());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType value = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(1, rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  type_ = value;
                }
                break;
              }
              case 18: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.newBuilder();
                if (hasRuleSet()) {
                  subBuilder.mergeFrom(getRuleSet());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setRuleSet(subBuilder.buildPartial());
                break;
              }
              case 26: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.newBuilder();
                if (hasHumanTask()) {
                  subBuilder.mergeFrom(getHumanTask());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setHumanTask(subBuilder.buildPartial());
                break;
              }
              case 34: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.newBuilder();
                if (hasWorkItem()) {
                  subBuilder.mergeFrom(getWorkItem());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setWorkItem(subBuilder.buildPartial());
                break;
              }
              case 42: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.newBuilder();
                if (hasSubProcess()) {
                  subBuilder.mergeFrom(getSubProcess());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setSubProcess(subBuilder.buildPartial());
                break;
              }
              case 50: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.newBuilder();
                if (hasMilestone()) {
                  subBuilder.mergeFrom(getMilestone());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setMilestone(subBuilder.buildPartial());
                break;
              }
              case 58: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.newBuilder();
                if (hasEvent()) {
                  subBuilder.mergeFrom(getEvent());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setEvent(subBuilder.buildPartial());
                break;
              }
              case 66: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.newBuilder();
                if (hasTimer()) {
                  subBuilder.mergeFrom(getTimer());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setTimer(subBuilder.buildPartial());
                break;
              }
              case 74: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.newBuilder();
                if (hasJoin()) {
                  subBuilder.mergeFrom(getJoin());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setJoin(subBuilder.buildPartial());
                break;
              }
              case 82: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.newBuilder();
                if (hasState()) {
                  subBuilder.mergeFrom(getState());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setState(subBuilder.buildPartial());
                break;
              }
              case 90: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.newBuilder();
                if (hasComposite()) {
                  subBuilder.mergeFrom(getComposite());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setComposite(subBuilder.buildPartial());
                break;
              }
              case 98: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.newBuilder();
                if (hasForEach()) {
                  subBuilder.mergeFrom(getForEach());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setForEach(subBuilder.buildPartial());
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType type_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType.RULE_SET_NODE;
        public boolean hasType() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType getType() {
          return type_;
        }
        public Builder setType(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          type_ = value;
          onChanged();
          return this;
        }
        public Builder clearType() {
          bitField0_ = (bitField0_ & ~0x00000001);
          type_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType.RULE_SET_NODE;
          onChanged();
          return this;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode ruleSet_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder> ruleSetBuilder_;
        public boolean hasRuleSet() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getRuleSet() {
          if (ruleSetBuilder_ == null) {
            return ruleSet_;
          } else {
            return ruleSetBuilder_.getMessage();
          }
        }
        public Builder setRuleSet(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode value) {
          if (ruleSetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ruleSet_ = value;
            onChanged();
          } else {
            ruleSetBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        public Builder setRuleSet(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder builderForValue) {
          if (ruleSetBuilder_ == null) {
            ruleSet_ = builderForValue.build();
            onChanged();
          } else {
            ruleSetBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        public Builder mergeRuleSet(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode value) {
          if (ruleSetBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                ruleSet_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance()) {
              ruleSet_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.newBuilder(ruleSet_).mergeFrom(value).buildPartial();
            } else {
              ruleSet_ = value;
            }
            onChanged();
          } else {
            ruleSetBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        public Builder clearRuleSet() {
          if (ruleSetBuilder_ == null) {
            ruleSet_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance();
            onChanged();
          } else {
            ruleSetBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder getRuleSetBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getRuleSetFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder getRuleSetOrBuilder() {
          if (ruleSetBuilder_ != null) {
            return ruleSetBuilder_.getMessageOrBuilder();
          } else {
            return ruleSet_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder> 
            getRuleSetFieldBuilder() {
          if (ruleSetBuilder_ == null) {
            ruleSetBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder>(
                    ruleSet_,
                    getParentForChildren(),
                    isClean());
            ruleSet_ = null;
          }
          return ruleSetBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode humanTask_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder> humanTaskBuilder_;
        public boolean hasHumanTask() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getHumanTask() {
          if (humanTaskBuilder_ == null) {
            return humanTask_;
          } else {
            return humanTaskBuilder_.getMessage();
          }
        }
        public Builder setHumanTask(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode value) {
          if (humanTaskBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            humanTask_ = value;
            onChanged();
          } else {
            humanTaskBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder setHumanTask(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder builderForValue) {
          if (humanTaskBuilder_ == null) {
            humanTask_ = builderForValue.build();
            onChanged();
          } else {
            humanTaskBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder mergeHumanTask(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode value) {
          if (humanTaskBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004) &&
                humanTask_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance()) {
              humanTask_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.newBuilder(humanTask_).mergeFrom(value).buildPartial();
            } else {
              humanTask_ = value;
            }
            onChanged();
          } else {
            humanTaskBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder clearHumanTask() {
          if (humanTaskBuilder_ == null) {
            humanTask_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance();
            onChanged();
          } else {
            humanTaskBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder getHumanTaskBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getHumanTaskFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder getHumanTaskOrBuilder() {
          if (humanTaskBuilder_ != null) {
            return humanTaskBuilder_.getMessageOrBuilder();
          } else {
            return humanTask_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder> 
            getHumanTaskFieldBuilder() {
          if (humanTaskBuilder_ == null) {
            humanTaskBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder>(
                    humanTask_,
                    getParentForChildren(),
                    isClean());
            humanTask_ = null;
          }
          return humanTaskBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode workItem_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder> workItemBuilder_;
        public boolean hasWorkItem() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getWorkItem() {
          if (workItemBuilder_ == null) {
            return workItem_;
          } else {
            return workItemBuilder_.getMessage();
          }
        }
        public Builder setWorkItem(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode value) {
          if (workItemBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            workItem_ = value;
            onChanged();
          } else {
            workItemBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder setWorkItem(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder builderForValue) {
          if (workItemBuilder_ == null) {
            workItem_ = builderForValue.build();
            onChanged();
          } else {
            workItemBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder mergeWorkItem(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode value) {
          if (workItemBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008) &&
                workItem_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance()) {
              workItem_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.newBuilder(workItem_).mergeFrom(value).buildPartial();
            } else {
              workItem_ = value;
            }
            onChanged();
          } else {
            workItemBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder clearWorkItem() {
          if (workItemBuilder_ == null) {
            workItem_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance();
            onChanged();
          } else {
            workItemBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder getWorkItemBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getWorkItemFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder getWorkItemOrBuilder() {
          if (workItemBuilder_ != null) {
            return workItemBuilder_.getMessageOrBuilder();
          } else {
            return workItem_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder> 
            getWorkItemFieldBuilder() {
          if (workItemBuilder_ == null) {
            workItemBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder>(
                    workItem_,
                    getParentForChildren(),
                    isClean());
            workItem_ = null;
          }
          return workItemBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode subProcess_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder> subProcessBuilder_;
        public boolean hasSubProcess() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getSubProcess() {
          if (subProcessBuilder_ == null) {
            return subProcess_;
          } else {
            return subProcessBuilder_.getMessage();
          }
        }
        public Builder setSubProcess(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode value) {
          if (subProcessBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            subProcess_ = value;
            onChanged();
          } else {
            subProcessBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder setSubProcess(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder builderForValue) {
          if (subProcessBuilder_ == null) {
            subProcess_ = builderForValue.build();
            onChanged();
          } else {
            subProcessBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder mergeSubProcess(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode value) {
          if (subProcessBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010) &&
                subProcess_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance()) {
              subProcess_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.newBuilder(subProcess_).mergeFrom(value).buildPartial();
            } else {
              subProcess_ = value;
            }
            onChanged();
          } else {
            subProcessBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder clearSubProcess() {
          if (subProcessBuilder_ == null) {
            subProcess_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance();
            onChanged();
          } else {
            subProcessBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder getSubProcessBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getSubProcessFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder getSubProcessOrBuilder() {
          if (subProcessBuilder_ != null) {
            return subProcessBuilder_.getMessageOrBuilder();
          } else {
            return subProcess_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder> 
            getSubProcessFieldBuilder() {
          if (subProcessBuilder_ == null) {
            subProcessBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder>(
                    subProcess_,
                    getParentForChildren(),
                    isClean());
            subProcess_ = null;
          }
          return subProcessBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode milestone_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder> milestoneBuilder_;
        public boolean hasMilestone() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getMilestone() {
          if (milestoneBuilder_ == null) {
            return milestone_;
          } else {
            return milestoneBuilder_.getMessage();
          }
        }
        public Builder setMilestone(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode value) {
          if (milestoneBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            milestone_ = value;
            onChanged();
          } else {
            milestoneBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder setMilestone(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder builderForValue) {
          if (milestoneBuilder_ == null) {
            milestone_ = builderForValue.build();
            onChanged();
          } else {
            milestoneBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder mergeMilestone(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode value) {
          if (milestoneBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020) &&
                milestone_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance()) {
              milestone_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.newBuilder(milestone_).mergeFrom(value).buildPartial();
            } else {
              milestone_ = value;
            }
            onChanged();
          } else {
            milestoneBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder clearMilestone() {
          if (milestoneBuilder_ == null) {
            milestone_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance();
            onChanged();
          } else {
            milestoneBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder getMilestoneBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getMilestoneFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder getMilestoneOrBuilder() {
          if (milestoneBuilder_ != null) {
            return milestoneBuilder_.getMessageOrBuilder();
          } else {
            return milestone_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder> 
            getMilestoneFieldBuilder() {
          if (milestoneBuilder_ == null) {
            milestoneBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder>(
                    milestone_,
                    getParentForChildren(),
                    isClean());
            milestone_ = null;
          }
          return milestoneBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode event_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder> eventBuilder_;
        public boolean hasEvent() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getEvent() {
          if (eventBuilder_ == null) {
            return event_;
          } else {
            return eventBuilder_.getMessage();
          }
        }
        public Builder setEvent(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode value) {
          if (eventBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            event_ = value;
            onChanged();
          } else {
            eventBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000040;
          return this;
        }
        public Builder setEvent(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder builderForValue) {
          if (eventBuilder_ == null) {
            event_ = builderForValue.build();
            onChanged();
          } else {
            eventBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000040;
          return this;
        }
        public Builder mergeEvent(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode value) {
          if (eventBuilder_ == null) {
            if (((bitField0_ & 0x00000040) == 0x00000040) &&
                event_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance()) {
              event_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.newBuilder(event_).mergeFrom(value).buildPartial();
            } else {
              event_ = value;
            }
            onChanged();
          } else {
            eventBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000040;
          return this;
        }
        public Builder clearEvent() {
          if (eventBuilder_ == null) {
            event_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance();
            onChanged();
          } else {
            eventBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder getEventBuilder() {
          bitField0_ |= 0x00000040;
          onChanged();
          return getEventFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder getEventOrBuilder() {
          if (eventBuilder_ != null) {
            return eventBuilder_.getMessageOrBuilder();
          } else {
            return event_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder> 
            getEventFieldBuilder() {
          if (eventBuilder_ == null) {
            eventBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder>(
                    event_,
                    getParentForChildren(),
                    isClean());
            event_ = null;
          }
          return eventBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode timer_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder> timerBuilder_;
        public boolean hasTimer() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getTimer() {
          if (timerBuilder_ == null) {
            return timer_;
          } else {
            return timerBuilder_.getMessage();
          }
        }
        public Builder setTimer(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode value) {
          if (timerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            timer_ = value;
            onChanged();
          } else {
            timerBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000080;
          return this;
        }
        public Builder setTimer(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder builderForValue) {
          if (timerBuilder_ == null) {
            timer_ = builderForValue.build();
            onChanged();
          } else {
            timerBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000080;
          return this;
        }
        public Builder mergeTimer(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode value) {
          if (timerBuilder_ == null) {
            if (((bitField0_ & 0x00000080) == 0x00000080) &&
                timer_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance()) {
              timer_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.newBuilder(timer_).mergeFrom(value).buildPartial();
            } else {
              timer_ = value;
            }
            onChanged();
          } else {
            timerBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000080;
          return this;
        }
        public Builder clearTimer() {
          if (timerBuilder_ == null) {
            timer_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance();
            onChanged();
          } else {
            timerBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000080);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder getTimerBuilder() {
          bitField0_ |= 0x00000080;
          onChanged();
          return getTimerFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder getTimerOrBuilder() {
          if (timerBuilder_ != null) {
            return timerBuilder_.getMessageOrBuilder();
          } else {
            return timer_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder> 
            getTimerFieldBuilder() {
          if (timerBuilder_ == null) {
            timerBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder>(
                    timer_,
                    getParentForChildren(),
                    isClean());
            timer_ = null;
          }
          return timerBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode join_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder> joinBuilder_;
        public boolean hasJoin() {
          return ((bitField0_ & 0x00000100) == 0x00000100);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getJoin() {
          if (joinBuilder_ == null) {
            return join_;
          } else {
            return joinBuilder_.getMessage();
          }
        }
        public Builder setJoin(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode value) {
          if (joinBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            join_ = value;
            onChanged();
          } else {
            joinBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000100;
          return this;
        }
        public Builder setJoin(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder builderForValue) {
          if (joinBuilder_ == null) {
            join_ = builderForValue.build();
            onChanged();
          } else {
            joinBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000100;
          return this;
        }
        public Builder mergeJoin(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode value) {
          if (joinBuilder_ == null) {
            if (((bitField0_ & 0x00000100) == 0x00000100) &&
                join_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance()) {
              join_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.newBuilder(join_).mergeFrom(value).buildPartial();
            } else {
              join_ = value;
            }
            onChanged();
          } else {
            joinBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000100;
          return this;
        }
        public Builder clearJoin() {
          if (joinBuilder_ == null) {
            join_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance();
            onChanged();
          } else {
            joinBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000100);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder getJoinBuilder() {
          bitField0_ |= 0x00000100;
          onChanged();
          return getJoinFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder getJoinOrBuilder() {
          if (joinBuilder_ != null) {
            return joinBuilder_.getMessageOrBuilder();
          } else {
            return join_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder> 
            getJoinFieldBuilder() {
          if (joinBuilder_ == null) {
            joinBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder>(
                    join_,
                    getParentForChildren(),
                    isClean());
            join_ = null;
          }
          return joinBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode state_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder> stateBuilder_;
        public boolean hasState() {
          return ((bitField0_ & 0x00000200) == 0x00000200);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getState() {
          if (stateBuilder_ == null) {
            return state_;
          } else {
            return stateBuilder_.getMessage();
          }
        }
        public Builder setState(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode value) {
          if (stateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            state_ = value;
            onChanged();
          } else {
            stateBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000200;
          return this;
        }
        public Builder setState(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder builderForValue) {
          if (stateBuilder_ == null) {
            state_ = builderForValue.build();
            onChanged();
          } else {
            stateBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000200;
          return this;
        }
        public Builder mergeState(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode value) {
          if (stateBuilder_ == null) {
            if (((bitField0_ & 0x00000200) == 0x00000200) &&
                state_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance()) {
              state_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.newBuilder(state_).mergeFrom(value).buildPartial();
            } else {
              state_ = value;
            }
            onChanged();
          } else {
            stateBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000200;
          return this;
        }
        public Builder clearState() {
          if (stateBuilder_ == null) {
            state_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance();
            onChanged();
          } else {
            stateBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000200);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder getStateBuilder() {
          bitField0_ |= 0x00000200;
          onChanged();
          return getStateFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder getStateOrBuilder() {
          if (stateBuilder_ != null) {
            return stateBuilder_.getMessageOrBuilder();
          } else {
            return state_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder> 
            getStateFieldBuilder() {
          if (stateBuilder_ == null) {
            stateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder>(
                    state_,
                    getParentForChildren(),
                    isClean());
            state_ = null;
          }
          return stateBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode composite_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder> compositeBuilder_;
        public boolean hasComposite() {
          return ((bitField0_ & 0x00000400) == 0x00000400);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getComposite() {
          if (compositeBuilder_ == null) {
            return composite_;
          } else {
            return compositeBuilder_.getMessage();
          }
        }
        public Builder setComposite(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode value) {
          if (compositeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            composite_ = value;
            onChanged();
          } else {
            compositeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000400;
          return this;
        }
        public Builder setComposite(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder builderForValue) {
          if (compositeBuilder_ == null) {
            composite_ = builderForValue.build();
            onChanged();
          } else {
            compositeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000400;
          return this;
        }
        public Builder mergeComposite(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode value) {
          if (compositeBuilder_ == null) {
            if (((bitField0_ & 0x00000400) == 0x00000400) &&
                composite_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance()) {
              composite_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.newBuilder(composite_).mergeFrom(value).buildPartial();
            } else {
              composite_ = value;
            }
            onChanged();
          } else {
            compositeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000400;
          return this;
        }
        public Builder clearComposite() {
          if (compositeBuilder_ == null) {
            composite_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance();
            onChanged();
          } else {
            compositeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000400);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder getCompositeBuilder() {
          bitField0_ |= 0x00000400;
          onChanged();
          return getCompositeFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder getCompositeOrBuilder() {
          if (compositeBuilder_ != null) {
            return compositeBuilder_.getMessageOrBuilder();
          } else {
            return composite_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder> 
            getCompositeFieldBuilder() {
          if (compositeBuilder_ == null) {
            compositeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder>(
                    composite_,
                    getParentForChildren(),
                    isClean());
            composite_ = null;
          }
          return compositeBuilder_;
        }
        
        // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode forEach_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder> forEachBuilder_;
        public boolean hasForEach() {
          return ((bitField0_ & 0x00000800) == 0x00000800);
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getForEach() {
          if (forEachBuilder_ == null) {
            return forEach_;
          } else {
            return forEachBuilder_.getMessage();
          }
        }
        public Builder setForEach(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode value) {
          if (forEachBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            forEach_ = value;
            onChanged();
          } else {
            forEachBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000800;
          return this;
        }
        public Builder setForEach(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder builderForValue) {
          if (forEachBuilder_ == null) {
            forEach_ = builderForValue.build();
            onChanged();
          } else {
            forEachBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000800;
          return this;
        }
        public Builder mergeForEach(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode value) {
          if (forEachBuilder_ == null) {
            if (((bitField0_ & 0x00000800) == 0x00000800) &&
                forEach_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance()) {
              forEach_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.newBuilder(forEach_).mergeFrom(value).buildPartial();
            } else {
              forEach_ = value;
            }
            onChanged();
          } else {
            forEachBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000800;
          return this;
        }
        public Builder clearForEach() {
          if (forEachBuilder_ == null) {
            forEach_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance();
            onChanged();
          } else {
            forEachBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000800);
          return this;
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder getForEachBuilder() {
          bitField0_ |= 0x00000800;
          onChanged();
          return getForEachFieldBuilder().getBuilder();
        }
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder getForEachOrBuilder() {
          if (forEachBuilder_ != null) {
            return forEachBuilder_.getMessageOrBuilder();
          } else {
            return forEach_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder> 
            getForEachFieldBuilder() {
          if (forEachBuilder_ == null) {
            forEachBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder>(
                    forEach_,
                    getParentForChildren(),
                    isClean());
            forEach_ = null;
          }
          return forEachBuilder_;
        }
        
        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent)
      }
      
      static {
        defaultInstance = new NodeInstanceContent(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent)
    }
    
    private int bitField0_;
    // optional string process_type = 1;
    public static final int PROCESS_TYPE_FIELD_NUMBER = 1;
    private Object processType_;
    public boolean hasProcessType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public String getProcessType() {
      Object ref = processType_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          processType_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getProcessTypeBytes() {
      Object ref = processType_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        processType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional int64 id = 2;
    public static final int ID_FIELD_NUMBER = 2;
    private long id_;
    public boolean hasId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public long getId() {
      return id_;
    }
    
    // optional string process_id = 3;
    public static final int PROCESS_ID_FIELD_NUMBER = 3;
    private Object processId_;
    public boolean hasProcessId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getProcessId() {
      Object ref = processId_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          processId_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getProcessIdBytes() {
      Object ref = processId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        processId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional int32 state = 4;
    public static final int STATE_FIELD_NUMBER = 4;
    private int state_;
    public boolean hasState() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getState() {
      return state_;
    }
    
    // optional int64 node_instance_counter = 5;
    public static final int NODE_INSTANCE_COUNTER_FIELD_NUMBER = 5;
    private long nodeInstanceCounter_;
    public boolean hasNodeInstanceCounter() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public long getNodeInstanceCounter() {
      return nodeInstanceCounter_;
    }
    
    // repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;
    public static final int SWIMLANE_CONTEXT_FIELD_NUMBER = 6;
    private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance> swimlaneContext_;
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance> getSwimlaneContextList() {
      return swimlaneContext_;
    }
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder> 
        getSwimlaneContextOrBuilderList() {
      return swimlaneContext_;
    }
    public int getSwimlaneContextCount() {
      return swimlaneContext_.size();
    }
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getSwimlaneContext(int index) {
      return swimlaneContext_.get(index);
    }
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder getSwimlaneContextOrBuilder(
        int index) {
      return swimlaneContext_.get(index);
    }
    
    // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;
    public static final int NODE_INSTANCE_FIELD_NUMBER = 7;
    private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> nodeInstance_;
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> getNodeInstanceList() {
      return nodeInstance_;
    }
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
        getNodeInstanceOrBuilderList() {
      return nodeInstance_;
    }
    public int getNodeInstanceCount() {
      return nodeInstance_.size();
    }
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
      return nodeInstance_.get(index);
    }
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
        int index) {
      return nodeInstance_.get(index);
    }
    
    // repeated .org.jbpm.marshalling.Variable variable = 8;
    public static final int VARIABLE_FIELD_NUMBER = 8;
    private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_;
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
      return variable_;
    }
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList() {
      return variable_;
    }
    public int getVariableCount() {
      return variable_.size();
    }
    public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
      return variable_.get(index);
    }
    public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index) {
      return variable_.get(index);
    }
    
    // repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;
    public static final int EXCLUSIVE_GROUP_FIELD_NUMBER = 10;
    private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> exclusiveGroup_;
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> getExclusiveGroupList() {
      return exclusiveGroup_;
    }
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
        getExclusiveGroupOrBuilderList() {
      return exclusiveGroup_;
    }
    public int getExclusiveGroupCount() {
      return exclusiveGroup_.size();
    }
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index) {
      return exclusiveGroup_.get(index);
    }
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
        int index) {
      return exclusiveGroup_.get(index);
    }
    
    private void initFields() {
      processType_ = "";
      id_ = 0L;
      processId_ = "";
      state_ = 0;
      nodeInstanceCounter_ = 0L;
      swimlaneContext_ = java.util.Collections.emptyList();
      nodeInstance_ = java.util.Collections.emptyList();
      variable_ = java.util.Collections.emptyList();
      exclusiveGroup_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getProcessTypeBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, id_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getProcessIdBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, state_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(5, nodeInstanceCounter_);
      }
      for (int i = 0; i < swimlaneContext_.size(); i++) {
        output.writeMessage(6, swimlaneContext_.get(i));
      }
      for (int i = 0; i < nodeInstance_.size(); i++) {
        output.writeMessage(7, nodeInstance_.get(i));
      }
      for (int i = 0; i < variable_.size(); i++) {
        output.writeMessage(8, variable_.get(i));
      }
      for (int i = 0; i < exclusiveGroup_.size(); i++) {
        output.writeMessage(10, exclusiveGroup_.get(i));
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getProcessTypeBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, id_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getProcessIdBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, state_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, nodeInstanceCounter_);
      }
      for (int i = 0; i < swimlaneContext_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, swimlaneContext_.get(i));
      }
      for (int i = 0; i < nodeInstance_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, nodeInstance_.get(i));
      }
      for (int i = 0; i < variable_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, variable_.get(i));
      }
      for (int i = 0; i < exclusiveGroup_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, exclusiveGroup_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    @java.lang.Override
    protected Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jbpm.marshalling.impl.JBPMMessages.ProcessInstanceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_fieldAccessorTable;
      }
      
      // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getSwimlaneContextFieldBuilder();
          getNodeInstanceFieldBuilder();
          getVariableFieldBuilder();
          getExclusiveGroupFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        processType_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        processId_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        state_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        nodeInstanceCounter_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (swimlaneContextBuilder_ == null) {
          swimlaneContext_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          swimlaneContextBuilder_.clear();
        }
        if (nodeInstanceBuilder_ == null) {
          nodeInstance_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          nodeInstanceBuilder_.clear();
        }
        if (variableBuilder_ == null) {
          variable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          variableBuilder_.clear();
        }
        if (exclusiveGroupBuilder_ == null) {
          exclusiveGroup_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
        } else {
          exclusiveGroupBuilder_.clear();
        }
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.getDescriptor();
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.getDefaultInstance();
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance build() {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance buildPartial() {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.processType_ = processType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.processId_ = processId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.state_ = state_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.nodeInstanceCounter_ = nodeInstanceCounter_;
        if (swimlaneContextBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            swimlaneContext_ = java.util.Collections.unmodifiableList(swimlaneContext_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.swimlaneContext_ = swimlaneContext_;
        } else {
          result.swimlaneContext_ = swimlaneContextBuilder_.build();
        }
        if (nodeInstanceBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.nodeInstance_ = nodeInstance_;
        } else {
          result.nodeInstance_ = nodeInstanceBuilder_.build();
        }
        if (variableBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            variable_ = java.util.Collections.unmodifiableList(variable_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.variable_ = variable_;
        } else {
          result.variable_ = variableBuilder_.build();
        }
        if (exclusiveGroupBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)) {
            exclusiveGroup_ = java.util.Collections.unmodifiableList(exclusiveGroup_);
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.exclusiveGroup_ = exclusiveGroup_;
        } else {
          result.exclusiveGroup_ = exclusiveGroupBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance) {
          return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance other) {
        if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.getDefaultInstance()) return this;
        if (other.hasProcessType()) {
          setProcessType(other.getProcessType());
        }
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasProcessId()) {
          setProcessId(other.getProcessId());
        }
        if (other.hasState()) {
          setState(other.getState());
        }
        if (other.hasNodeInstanceCounter()) {
          setNodeInstanceCounter(other.getNodeInstanceCounter());
        }
        if (swimlaneContextBuilder_ == null) {
          if (!other.swimlaneContext_.isEmpty()) {
            if (swimlaneContext_.isEmpty()) {
              swimlaneContext_ = other.swimlaneContext_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureSwimlaneContextIsMutable();
              swimlaneContext_.addAll(other.swimlaneContext_);
            }
            onChanged();
          }
        } else {
          if (!other.swimlaneContext_.isEmpty()) {
            if (swimlaneContextBuilder_.isEmpty()) {
              swimlaneContextBuilder_.dispose();
              swimlaneContextBuilder_ = null;
              swimlaneContext_ = other.swimlaneContext_;
              bitField0_ = (bitField0_ & ~0x00000020);
              swimlaneContextBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSwimlaneContextFieldBuilder() : null;
            } else {
              swimlaneContextBuilder_.addAllMessages(other.swimlaneContext_);
            }
          }
        }
        if (nodeInstanceBuilder_ == null) {
          if (!other.nodeInstance_.isEmpty()) {
            if (nodeInstance_.isEmpty()) {
              nodeInstance_ = other.nodeInstance_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureNodeInstanceIsMutable();
              nodeInstance_.addAll(other.nodeInstance_);
            }
            onChanged();
          }
        } else {
          if (!other.nodeInstance_.isEmpty()) {
            if (nodeInstanceBuilder_.isEmpty()) {
              nodeInstanceBuilder_.dispose();
              nodeInstanceBuilder_ = null;
              nodeInstance_ = other.nodeInstance_;
              bitField0_ = (bitField0_ & ~0x00000040);
              nodeInstanceBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getNodeInstanceFieldBuilder() : null;
            } else {
              nodeInstanceBuilder_.addAllMessages(other.nodeInstance_);
            }
          }
        }
        if (variableBuilder_ == null) {
          if (!other.variable_.isEmpty()) {
            if (variable_.isEmpty()) {
              variable_ = other.variable_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureVariableIsMutable();
              variable_.addAll(other.variable_);
            }
            onChanged();
          }
        } else {
          if (!other.variable_.isEmpty()) {
            if (variableBuilder_.isEmpty()) {
              variableBuilder_.dispose();
              variableBuilder_ = null;
              variable_ = other.variable_;
              bitField0_ = (bitField0_ & ~0x00000080);
              variableBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getVariableFieldBuilder() : null;
            } else {
              variableBuilder_.addAllMessages(other.variable_);
            }
          }
        }
        if (exclusiveGroupBuilder_ == null) {
          if (!other.exclusiveGroup_.isEmpty()) {
            if (exclusiveGroup_.isEmpty()) {
              exclusiveGroup_ = other.exclusiveGroup_;
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.addAll(other.exclusiveGroup_);
            }
            onChanged();
          }
        } else {
          if (!other.exclusiveGroup_.isEmpty()) {
            if (exclusiveGroupBuilder_.isEmpty()) {
              exclusiveGroupBuilder_.dispose();
              exclusiveGroupBuilder_ = null;
              exclusiveGroup_ = other.exclusiveGroup_;
              bitField0_ = (bitField0_ & ~0x00000100);
              exclusiveGroupBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getExclusiveGroupFieldBuilder() : null;
            } else {
              exclusiveGroupBuilder_.addAllMessages(other.exclusiveGroup_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              processType_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              id_ = input.readInt64();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              processId_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              state_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              nodeInstanceCounter_ = input.readInt64();
              break;
            }
            case 50: {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addSwimlaneContext(subBuilder.buildPartial());
              break;
            }
            case 58: {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addNodeInstance(subBuilder.buildPartial());
              break;
            }
            case 66: {
              org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.Variable.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addVariable(subBuilder.buildPartial());
              break;
            }
            case 82: {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addExclusiveGroup(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional string process_type = 1;
      private Object processType_ = "";
      public boolean hasProcessType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public String getProcessType() {
        Object ref = processType_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          processType_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setProcessType(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        processType_ = value;
        onChanged();
        return this;
      }
      public Builder clearProcessType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        processType_ = getDefaultInstance().getProcessType();
        onChanged();
        return this;
      }
      void setProcessType(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000001;
        processType_ = value;
        onChanged();
      }
      
      // optional int64 id = 2;
      private long id_ ;
      public boolean hasId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public long getId() {
        return id_;
      }
      public Builder setId(long value) {
        bitField0_ |= 0x00000002;
        id_ = value;
        onChanged();
        return this;
      }
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        id_ = 0L;
        onChanged();
        return this;
      }
      
      // optional string process_id = 3;
      private Object processId_ = "";
      public boolean hasProcessId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getProcessId() {
        Object ref = processId_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          processId_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setProcessId(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        processId_ = value;
        onChanged();
        return this;
      }
      public Builder clearProcessId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        processId_ = getDefaultInstance().getProcessId();
        onChanged();
        return this;
      }
      void setProcessId(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        processId_ = value;
        onChanged();
      }
      
      // optional int32 state = 4;
      private int state_ ;
      public boolean hasState() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getState() {
        return state_;
      }
      public Builder setState(int value) {
        bitField0_ |= 0x00000008;
        state_ = value;
        onChanged();
        return this;
      }
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000008);
        state_ = 0;
        onChanged();
        return this;
      }
      
      // optional int64 node_instance_counter = 5;
      private long nodeInstanceCounter_ ;
      public boolean hasNodeInstanceCounter() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public long getNodeInstanceCounter() {
        return nodeInstanceCounter_;
      }
      public Builder setNodeInstanceCounter(long value) {
        bitField0_ |= 0x00000010;
        nodeInstanceCounter_ = value;
        onChanged();
        return this;
      }
      public Builder clearNodeInstanceCounter() {
        bitField0_ = (bitField0_ & ~0x00000010);
        nodeInstanceCounter_ = 0L;
        onChanged();
        return this;
      }
      
      // repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;
      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance> swimlaneContext_ =
        java.util.Collections.emptyList();
      private void ensureSwimlaneContextIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          swimlaneContext_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance>(swimlaneContext_);
          bitField0_ |= 0x00000020;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder> swimlaneContextBuilder_;
      
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance> getSwimlaneContextList() {
        if (swimlaneContextBuilder_ == null) {
          return java.util.Collections.unmodifiableList(swimlaneContext_);
        } else {
          return swimlaneContextBuilder_.getMessageList();
        }
      }
      public int getSwimlaneContextCount() {
        if (swimlaneContextBuilder_ == null) {
          return swimlaneContext_.size();
        } else {
          return swimlaneContextBuilder_.getCount();
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getSwimlaneContext(int index) {
        if (swimlaneContextBuilder_ == null) {
          return swimlaneContext_.get(index);
        } else {
          return swimlaneContextBuilder_.getMessage(index);
        }
      }
      public Builder setSwimlaneContext(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance value) {
        if (swimlaneContextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSwimlaneContextIsMutable();
          swimlaneContext_.set(index, value);
          onChanged();
        } else {
          swimlaneContextBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setSwimlaneContext(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder builderForValue) {
        if (swimlaneContextBuilder_ == null) {
          ensureSwimlaneContextIsMutable();
          swimlaneContext_.set(index, builderForValue.build());
          onChanged();
        } else {
          swimlaneContextBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addSwimlaneContext(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance value) {
        if (swimlaneContextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSwimlaneContextIsMutable();
          swimlaneContext_.add(value);
          onChanged();
        } else {
          swimlaneContextBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addSwimlaneContext(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance value) {
        if (swimlaneContextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSwimlaneContextIsMutable();
          swimlaneContext_.add(index, value);
          onChanged();
        } else {
          swimlaneContextBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addSwimlaneContext(
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder builderForValue) {
        if (swimlaneContextBuilder_ == null) {
          ensureSwimlaneContextIsMutable();
          swimlaneContext_.add(builderForValue.build());
          onChanged();
        } else {
          swimlaneContextBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addSwimlaneContext(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder builderForValue) {
        if (swimlaneContextBuilder_ == null) {
          ensureSwimlaneContextIsMutable();
          swimlaneContext_.add(index, builderForValue.build());
          onChanged();
        } else {
          swimlaneContextBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllSwimlaneContext(
          java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance> values) {
        if (swimlaneContextBuilder_ == null) {
          ensureSwimlaneContextIsMutable();
          super.addAll(values, swimlaneContext_);
          onChanged();
        } else {
          swimlaneContextBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearSwimlaneContext() {
        if (swimlaneContextBuilder_ == null) {
          swimlaneContext_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          swimlaneContextBuilder_.clear();
        }
        return this;
      }
      public Builder removeSwimlaneContext(int index) {
        if (swimlaneContextBuilder_ == null) {
          ensureSwimlaneContextIsMutable();
          swimlaneContext_.remove(index);
          onChanged();
        } else {
          swimlaneContextBuilder_.remove(index);
        }
        return this;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder getSwimlaneContextBuilder(
          int index) {
        return getSwimlaneContextFieldBuilder().getBuilder(index);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder getSwimlaneContextOrBuilder(
          int index) {
        if (swimlaneContextBuilder_ == null) {
          return swimlaneContext_.get(index);  } else {
          return swimlaneContextBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder> 
           getSwimlaneContextOrBuilderList() {
        if (swimlaneContextBuilder_ != null) {
          return swimlaneContextBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(swimlaneContext_);
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder addSwimlaneContextBuilder() {
        return getSwimlaneContextFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.getDefaultInstance());
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder addSwimlaneContextBuilder(
          int index) {
        return getSwimlaneContextFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.getDefaultInstance());
      }
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder> 
           getSwimlaneContextBuilderList() {
        return getSwimlaneContextFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder> 
          getSwimlaneContextFieldBuilder() {
        if (swimlaneContextBuilder_ == null) {
          swimlaneContextBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder>(
                  swimlaneContext_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          swimlaneContext_ = null;
        }
        return swimlaneContextBuilder_;
      }
      
      // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;
      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> nodeInstance_ =
        java.util.Collections.emptyList();
      private void ensureNodeInstanceIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>(nodeInstance_);
          bitField0_ |= 0x00000040;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> nodeInstanceBuilder_;
      
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> getNodeInstanceList() {
        if (nodeInstanceBuilder_ == null) {
          return java.util.Collections.unmodifiableList(nodeInstance_);
        } else {
          return nodeInstanceBuilder_.getMessageList();
        }
      }
      public int getNodeInstanceCount() {
        if (nodeInstanceBuilder_ == null) {
          return nodeInstance_.size();
        } else {
          return nodeInstanceBuilder_.getCount();
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
        if (nodeInstanceBuilder_ == null) {
          return nodeInstance_.get(index);
        } else {
          return nodeInstanceBuilder_.getMessage(index);
        }
      }
      public Builder setNodeInstance(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance value) {
        if (nodeInstanceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodeInstanceIsMutable();
          nodeInstance_.set(index, value);
          onChanged();
        } else {
          nodeInstanceBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setNodeInstance(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder builderForValue) {
        if (nodeInstanceBuilder_ == null) {
          ensureNodeInstanceIsMutable();
          nodeInstance_.set(index, builderForValue.build());
          onChanged();
        } else {
          nodeInstanceBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addNodeInstance(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance value) {
        if (nodeInstanceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodeInstanceIsMutable();
          nodeInstance_.add(value);
          onChanged();
        } else {
          nodeInstanceBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addNodeInstance(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance value) {
        if (nodeInstanceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodeInstanceIsMutable();
          nodeInstance_.add(index, value);
          onChanged();
        } else {
          nodeInstanceBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addNodeInstance(
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder builderForValue) {
        if (nodeInstanceBuilder_ == null) {
          ensureNodeInstanceIsMutable();
          nodeInstance_.add(builderForValue.build());
          onChanged();
        } else {
          nodeInstanceBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addNodeInstance(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder builderForValue) {
        if (nodeInstanceBuilder_ == null) {
          ensureNodeInstanceIsMutable();
          nodeInstance_.add(index, builderForValue.build());
          onChanged();
        } else {
          nodeInstanceBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllNodeInstance(
          java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> values) {
        if (nodeInstanceBuilder_ == null) {
          ensureNodeInstanceIsMutable();
          super.addAll(values, nodeInstance_);
          onChanged();
        } else {
          nodeInstanceBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearNodeInstance() {
        if (nodeInstanceBuilder_ == null) {
          nodeInstance_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          nodeInstanceBuilder_.clear();
        }
        return this;
      }
      public Builder removeNodeInstance(int index) {
        if (nodeInstanceBuilder_ == null) {
          ensureNodeInstanceIsMutable();
          nodeInstance_.remove(index);
          onChanged();
        } else {
          nodeInstanceBuilder_.remove(index);
        }
        return this;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder getNodeInstanceBuilder(
          int index) {
        return getNodeInstanceFieldBuilder().getBuilder(index);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
          int index) {
        if (nodeInstanceBuilder_ == null) {
          return nodeInstance_.get(index);  } else {
          return nodeInstanceBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
           getNodeInstanceOrBuilderList() {
        if (nodeInstanceBuilder_ != null) {
          return nodeInstanceBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(nodeInstance_);
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder() {
        return getNodeInstanceFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder(
          int index) {
        return getNodeInstanceFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
      }
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder> 
           getNodeInstanceBuilderList() {
        return getNodeInstanceFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
          getNodeInstanceFieldBuilder() {
        if (nodeInstanceBuilder_ == null) {
          nodeInstanceBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder>(
                  nodeInstance_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          nodeInstance_ = null;
        }
        return nodeInstanceBuilder_;
      }
      
      // repeated .org.jbpm.marshalling.Variable variable = 8;
      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_ =
        java.util.Collections.emptyList();
      private void ensureVariableIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>(variable_);
          bitField0_ |= 0x00000080;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> variableBuilder_;
      
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
        if (variableBuilder_ == null) {
          return java.util.Collections.unmodifiableList(variable_);
        } else {
          return variableBuilder_.getMessageList();
        }
      }
      public int getVariableCount() {
        if (variableBuilder_ == null) {
          return variable_.size();
        } else {
          return variableBuilder_.getCount();
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
        if (variableBuilder_ == null) {
          return variable_.get(index);
        } else {
          return variableBuilder_.getMessage(index);
        }
      }
      public Builder setVariable(
          int index, org.jbpm.marshalling.impl.JBPMMessages.Variable value) {
        if (variableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVariableIsMutable();
          variable_.set(index, value);
          onChanged();
        } else {
          variableBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setVariable(
          int index, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder builderForValue) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.set(index, builderForValue.build());
          onChanged();
        } else {
          variableBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addVariable(org.jbpm.marshalling.impl.JBPMMessages.Variable value) {
        if (variableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVariableIsMutable();
          variable_.add(value);
          onChanged();
        } else {
          variableBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addVariable(
          int index, org.jbpm.marshalling.impl.JBPMMessages.Variable value) {
        if (variableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVariableIsMutable();
          variable_.add(index, value);
          onChanged();
        } else {
          variableBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addVariable(
          org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder builderForValue) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.add(builderForValue.build());
          onChanged();
        } else {
          variableBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addVariable(
          int index, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder builderForValue) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.add(index, builderForValue.build());
          onChanged();
        } else {
          variableBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllVariable(
          java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.Variable> values) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          super.addAll(values, variable_);
          onChanged();
        } else {
          variableBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearVariable() {
        if (variableBuilder_ == null) {
          variable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          variableBuilder_.clear();
        }
        return this;
      }
      public Builder removeVariable(int index) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.remove(index);
          onChanged();
        } else {
          variableBuilder_.remove(index);
        }
        return this;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder getVariableBuilder(
          int index) {
        return getVariableFieldBuilder().getBuilder(index);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
          int index) {
        if (variableBuilder_ == null) {
          return variable_.get(index);  } else {
          return variableBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
           getVariableOrBuilderList() {
        if (variableBuilder_ != null) {
          return variableBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(variable_);
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder() {
        return getVariableFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
      }
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder(
          int index) {
        return getVariableFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
      }
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder> 
           getVariableBuilderList() {
        return getVariableFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
          getVariableFieldBuilder() {
        if (variableBuilder_ == null) {
          variableBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder>(
                  variable_,
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          variable_ = null;
        }
        return variableBuilder_;
      }
      
      // repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;
      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> exclusiveGroup_ =
        java.util.Collections.emptyList();
      private void ensureExclusiveGroupIsMutable() {
        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
          exclusiveGroup_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance>(exclusiveGroup_);
          bitField0_ |= 0x00000100;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> exclusiveGroupBuilder_;
      
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> getExclusiveGroupList() {
        if (exclusiveGroupBuilder_ == null) {
          return java.util.Collections.unmodifiableList(exclusiveGroup_);
        } else {
          return exclusiveGroupBuilder_.getMessageList();
        }
      }
      public int getExclusiveGroupCount() {
        if (exclusiveGroupBuilder_ == null) {
          return exclusiveGroup_.size();
        } else {
          return exclusiveGroupBuilder_.getCount();
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index) {
        if (exclusiveGroupBuilder_ == null) {
          return exclusiveGroup_.get(index);
        } else {
          return exclusiveGroupBuilder_.getMessage(index);
        }
      }
      public Builder setExclusiveGroup(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance value) {
        if (exclusiveGroupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureExclusiveGroupIsMutable();
          exclusiveGroup_.set(index, value);
          onChanged();
        } else {
          exclusiveGroupBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setExclusiveGroup(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder builderForValue) {
        if (exclusiveGroupBuilder_ == null) {
          ensureExclusiveGroupIsMutable();
          exclusiveGroup_.set(index, builderForValue.build());
          onChanged();
        } else {
          exclusiveGroupBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addExclusiveGroup(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance value) {
        if (exclusiveGroupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureExclusiveGroupIsMutable();
          exclusiveGroup_.add(value);
          onChanged();
        } else {
          exclusiveGroupBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addExclusiveGroup(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance value) {
        if (exclusiveGroupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureExclusiveGroupIsMutable();
          exclusiveGroup_.add(index, value);
          onChanged();
        } else {
          exclusiveGroupBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addExclusiveGroup(
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder builderForValue) {
        if (exclusiveGroupBuilder_ == null) {
          ensureExclusiveGroupIsMutable();
          exclusiveGroup_.add(builderForValue.build());
          onChanged();
        } else {
          exclusiveGroupBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addExclusiveGroup(
          int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder builderForValue) {
        if (exclusiveGroupBuilder_ == null) {
          ensureExclusiveGroupIsMutable();
          exclusiveGroup_.add(index, builderForValue.build());
          onChanged();
        } else {
          exclusiveGroupBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllExclusiveGroup(
          java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> values) {
        if (exclusiveGroupBuilder_ == null) {
          ensureExclusiveGroupIsMutable();
          super.addAll(values, exclusiveGroup_);
          onChanged();
        } else {
          exclusiveGroupBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearExclusiveGroup() {
        if (exclusiveGroupBuilder_ == null) {
          exclusiveGroup_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
        } else {
          exclusiveGroupBuilder_.clear();
        }
        return this;
      }
      public Builder removeExclusiveGroup(int index) {
        if (exclusiveGroupBuilder_ == null) {
          ensureExclusiveGroupIsMutable();
          exclusiveGroup_.remove(index);
          onChanged();
        } else {
          exclusiveGroupBuilder_.remove(index);
        }
        return this;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder getExclusiveGroupBuilder(
          int index) {
        return getExclusiveGroupFieldBuilder().getBuilder(index);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
          int index) {
        if (exclusiveGroupBuilder_ == null) {
          return exclusiveGroup_.get(index);  } else {
          return exclusiveGroupBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
           getExclusiveGroupOrBuilderList() {
        if (exclusiveGroupBuilder_ != null) {
          return exclusiveGroupBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(exclusiveGroup_);
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder addExclusiveGroupBuilder() {
        return getExclusiveGroupFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance());
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder addExclusiveGroupBuilder(
          int index) {
        return getExclusiveGroupFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance());
      }
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder> 
           getExclusiveGroupBuilderList() {
        return getExclusiveGroupFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
          getExclusiveGroupFieldBuilder() {
        if (exclusiveGroupBuilder_ == null) {
          exclusiveGroupBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder>(
                  exclusiveGroup_,
                  ((bitField0_ & 0x00000100) == 0x00000100),
                  getParentForChildren(),
                  isClean());
          exclusiveGroup_ = null;
        }
        return exclusiveGroupBuilder_;
      }
      
      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance)
    }
    
    static {
      defaultInstance = new ProcessInstance(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance)
  }
  
  public interface VariableOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional string name = 1;
    boolean hasName();
    String getName();
    
    // optional int32 strategy_index = 2;
    boolean hasStrategyIndex();
    int getStrategyIndex();
    
    // optional bytes value = 3;
    boolean hasValue();
    com.google.protobuf.ByteString getValue();
  }
  public static final class Variable extends
      com.google.protobuf.GeneratedMessage
      implements VariableOrBuilder {
    // Use Variable.newBuilder() to construct.
    private Variable(Builder builder) {
      super(builder);
    }
    private Variable(boolean noInit) {}
    
    private static final Variable defaultInstance;
    public static Variable getDefaultInstance() {
      return defaultInstance;
    }
    
    public Variable getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_Variable_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_Variable_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional string name = 1;
    public static final int NAME_FIELD_NUMBER = 1;
    private Object name_;
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public String getName() {
      Object ref = name_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          name_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getNameBytes() {
      Object ref = name_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional int32 strategy_index = 2;
    public static final int STRATEGY_INDEX_FIELD_NUMBER = 2;
    private int strategyIndex_;
    public boolean hasStrategyIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getStrategyIndex() {
      return strategyIndex_;
    }
    
    // optional bytes value = 3;
    public static final int VALUE_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString value_;
    public boolean hasValue() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public com.google.protobuf.ByteString getValue() {
      return value_;
    }
    
    private void initFields() {
      name_ = "";
      strategyIndex_ = 0;
      value_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, strategyIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, value_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, strategyIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, value_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    @java.lang.Override
    protected Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.Variable prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_Variable_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_Variable_fieldAccessorTable;
      }
      
      // Construct using org.jbpm.marshalling.impl.JBPMMessages.Variable.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        strategyIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.Variable.getDescriptor();
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.Variable getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance();
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.Variable build() {
        org.jbpm.marshalling.impl.JBPMMessages.Variable result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private org.jbpm.marshalling.impl.JBPMMessages.Variable buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        org.jbpm.marshalling.impl.JBPMMessages.Variable result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.Variable buildPartial() {
        org.jbpm.marshalling.impl.JBPMMessages.Variable result = new org.jbpm.marshalling.impl.JBPMMessages.Variable(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.strategyIndex_ = strategyIndex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.Variable) {
          return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.Variable)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.Variable other) {
        if (other == org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance()) return this;
        if (other.hasName()) {
          setName(other.getName());
        }
        if (other.hasStrategyIndex()) {
          setStrategyIndex(other.getStrategyIndex());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              name_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              strategyIndex_ = input.readInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              value_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional string name = 1;
      private Object name_ = "";
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public String getName() {
        Object ref = name_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setName(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      void setName(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
      }
      
      // optional int32 strategy_index = 2;
      private int strategyIndex_ ;
      public boolean hasStrategyIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getStrategyIndex() {
        return strategyIndex_;
      }
      public Builder setStrategyIndex(int value) {
        bitField0_ |= 0x00000002;
        strategyIndex_ = value;
        onChanged();
        return this;
      }
      public Builder clearStrategyIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        strategyIndex_ = 0;
        onChanged();
        return this;
      }
      
      // optional bytes value = 3;
      private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public com.google.protobuf.ByteString getValue() {
        return value_;
      }
      public Builder setValue(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        value_ = value;
        onChanged();
        return this;
      }
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.Variable)
    }
    
    static {
      defaultInstance = new Variable(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.Variable)
  }
  
  public interface WorkItemOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional int64 id = 1;
    boolean hasId();
    long getId();
    
    // optional int64 process_instances_id = 2;
    boolean hasProcessInstancesId();
    long getProcessInstancesId();
    
    // optional string name = 3;
    boolean hasName();
    String getName();
    
    // optional int32 state = 4;
    boolean hasState();
    int getState();
    
    // repeated .org.jbpm.marshalling.Variable variable = 5;
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> 
        getVariableList();
    org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index);
    int getVariableCount();
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList();
    org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index);
  }
  public static final class WorkItem extends
      com.google.protobuf.GeneratedMessage
      implements WorkItemOrBuilder {
    // Use WorkItem.newBuilder() to construct.
    private WorkItem(Builder builder) {
      super(builder);
    }
    private WorkItem(boolean noInit) {}
    
    private static final WorkItem defaultInstance;
    public static WorkItem getDefaultInstance() {
      return defaultInstance;
    }
    
    public WorkItem getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_WorkItem_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_WorkItem_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional int64 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public long getId() {
      return id_;
    }
    
    // optional int64 process_instances_id = 2;
    public static final int PROCESS_INSTANCES_ID_FIELD_NUMBER = 2;
    private long processInstancesId_;
    public boolean hasProcessInstancesId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public long getProcessInstancesId() {
      return processInstancesId_;
    }
    
    // optional string name = 3;
    public static final int NAME_FIELD_NUMBER = 3;
    private Object name_;
    public boolean hasName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getName() {
      Object ref = name_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          name_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getNameBytes() {
      Object ref = name_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional int32 state = 4;
    public static final int STATE_FIELD_NUMBER = 4;
    private int state_;
    public boolean hasState() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getState() {
      return state_;
    }
    
    // repeated .org.jbpm.marshalling.Variable variable = 5;
    public static final int VARIABLE_FIELD_NUMBER = 5;
    private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_;
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
      return variable_;
    }
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList() {
      return variable_;
    }
    public int getVariableCount() {
      return variable_.size();
    }
    public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
      return variable_.get(index);
    }
    public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index) {
      return variable_.get(index);
    }
    
    private void initFields() {
      id_ = 0L;
      processInstancesId_ = 0L;
      name_ = "";
      state_ = 0;
      variable_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, processInstancesId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, state_);
      }
      for (int i = 0; i < variable_.size(); i++) {
        output.writeMessage(5, variable_.get(i));
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, processInstancesId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, state_);
      }
      for (int i = 0; i < variable_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, variable_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    @java.lang.Override
    protected Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.WorkItem prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jbpm.marshalling.impl.JBPMMessages.WorkItemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_WorkItem_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_WorkItem_fieldAccessorTable;
      }
      
      // Construct using org.jbpm.marshalling.impl.JBPMMessages.WorkItem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getVariableFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        id_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        processInstancesId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        state_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (variableBuilder_ == null) {
          variable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          variableBuilder_.clear();
        }
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.WorkItem.getDescriptor();
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.WorkItem getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.WorkItem.getDefaultInstance();
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.WorkItem build() {
        org.jbpm.marshalling.impl.JBPMMessages.WorkItem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private org.jbpm.marshalling.impl.JBPMMessages.WorkItem buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        org.jbpm.marshalling.impl.JBPMMessages.WorkItem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.WorkItem buildPartial() {
        org.jbpm.marshalling.impl.JBPMMessages.WorkItem result = new org.jbpm.marshalling.impl.JBPMMessages.WorkItem(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.processInstancesId_ = processInstancesId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.state_ = state_;
        if (variableBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            variable_ = java.util.Collections.unmodifiableList(variable_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.variable_ = variable_;
        } else {
          result.variable_ = variableBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.WorkItem) {
          return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.WorkItem)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.WorkItem other) {
        if (other == org.jbpm.marshalling.impl.JBPMMessages.WorkItem.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasProcessInstancesId()) {
          setProcessInstancesId(other.getProcessInstancesId());
        }
        if (other.hasName()) {
          setName(other.getName());
        }
        if (other.hasState()) {
          setState(other.getState());
        }
        if (variableBuilder_ == null) {
          if (!other.variable_.isEmpty()) {
            if (variable_.isEmpty()) {
              variable_ = other.variable_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureVariableIsMutable();
              variable_.addAll(other.variable_);
            }
            onChanged();
          }
        } else {
          if (!other.variable_.isEmpty()) {
            if (variableBuilder_.isEmpty()) {
              variableBuilder_.dispose();
              variableBuilder_ = null;
              variable_ = other.variable_;
              bitField0_ = (bitField0_ & ~0x00000010);
              variableBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getVariableFieldBuilder() : null;
            } else {
              variableBuilder_.addAllMessages(other.variable_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              id_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              processInstancesId_ = input.readInt64();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              name_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              state_ = input.readInt32();
              break;
            }
            case 42: {
              org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.Variable.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addVariable(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional int64 id = 1;
      private long id_ ;
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public long getId() {
        return id_;
      }
      public Builder setId(long value) {
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }
      
      // optional int64 process_instances_id = 2;
      private long processInstancesId_ ;
      public boolean hasProcessInstancesId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public long getProcessInstancesId() {
        return processInstancesId_;
      }
      public Builder setProcessInstancesId(long value) {
        bitField0_ |= 0x00000002;
        processInstancesId_ = value;
        onChanged();
        return this;
      }
      public Builder clearProcessInstancesId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        processInstancesId_ = 0L;
        onChanged();
        return this;
      }
      
      // optional string name = 3;
      private Object name_ = "";
      public boolean hasName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getName() {
        Object ref = name_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setName(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        name_ = value;
        onChanged();
        return this;
      }
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      void setName(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        name_ = value;
        onChanged();
      }
      
      // optional int32 state = 4;
      private int state_ ;
      public boolean hasState() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getState() {
        return state_;
      }
      public Builder setState(int value) {
        bitField0_ |= 0x00000008;
        state_ = value;
        onChanged();
        return this;
      }
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000008);
        state_ = 0;
        onChanged();
        return this;
      }
      
      // repeated .org.jbpm.marshalling.Variable variable = 5;
      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_ =
        java.util.Collections.emptyList();
      private void ensureVariableIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>(variable_);
          bitField0_ |= 0x00000010;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> variableBuilder_;
      
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
        if (variableBuilder_ == null) {
          return java.util.Collections.unmodifiableList(variable_);
        } else {
          return variableBuilder_.getMessageList();
        }
      }
      public int getVariableCount() {
        if (variableBuilder_ == null) {
          return variable_.size();
        } else {
          return variableBuilder_.getCount();
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
        if (variableBuilder_ == null) {
          return variable_.get(index);
        } else {
          return variableBuilder_.getMessage(index);
        }
      }
      public Builder setVariable(
          int index, org.jbpm.marshalling.impl.JBPMMessages.Variable value) {
        if (variableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVariableIsMutable();
          variable_.set(index, value);
          onChanged();
        } else {
          variableBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setVariable(
          int index, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder builderForValue) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.set(index, builderForValue.build());
          onChanged();
        } else {
          variableBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addVariable(org.jbpm.marshalling.impl.JBPMMessages.Variable value) {
        if (variableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVariableIsMutable();
          variable_.add(value);
          onChanged();
        } else {
          variableBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addVariable(
          int index, org.jbpm.marshalling.impl.JBPMMessages.Variable value) {
        if (variableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVariableIsMutable();
          variable_.add(index, value);
          onChanged();
        } else {
          variableBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addVariable(
          org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder builderForValue) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.add(builderForValue.build());
          onChanged();
        } else {
          variableBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addVariable(
          int index, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder builderForValue) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.add(index, builderForValue.build());
          onChanged();
        } else {
          variableBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllVariable(
          java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.Variable> values) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          super.addAll(values, variable_);
          onChanged();
        } else {
          variableBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearVariable() {
        if (variableBuilder_ == null) {
          variable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          variableBuilder_.clear();
        }
        return this;
      }
      public Builder removeVariable(int index) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.remove(index);
          onChanged();
        } else {
          variableBuilder_.remove(index);
        }
        return this;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder getVariableBuilder(
          int index) {
        return getVariableFieldBuilder().getBuilder(index);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
          int index) {
        if (variableBuilder_ == null) {
          return variable_.get(index);  } else {
          return variableBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
           getVariableOrBuilderList() {
        if (variableBuilder_ != null) {
          return variableBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(variable_);
        }
      }
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder() {
        return getVariableFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
      }
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder(
          int index) {
        return getVariableFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
      }
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder> 
           getVariableBuilderList() {
        return getVariableFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
          getVariableFieldBuilder() {
        if (variableBuilder_ == null) {
          variableBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder>(
                  variable_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          variable_ = null;
        }
        return variableBuilder_;
      }
      
      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.WorkItem)
    }
    
    static {
      defaultInstance = new WorkItem(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.WorkItem)
  }
  
  public interface ProcessTimerOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;
    boolean hasTimer();
    org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getTimer();
    org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder getTimerOrBuilder();
    
    // optional .org.drools.marshalling.Trigger trigger = 2;
    boolean hasTrigger();
    org.drools.marshalling.impl.ProtobufMessages.Trigger getTrigger();
    org.drools.marshalling.impl.ProtobufMessages.TriggerOrBuilder getTriggerOrBuilder();
  }
  public static final class ProcessTimer extends
      com.google.protobuf.GeneratedMessage
      implements ProcessTimerOrBuilder {
    // Use ProcessTimer.newBuilder() to construct.
    private ProcessTimer(Builder builder) {
      super(builder);
    }
    private ProcessTimer(boolean noInit) {}
    
    private static final ProcessTimer defaultInstance;
    public static ProcessTimer getDefaultInstance() {
      return defaultInstance;
    }
    
    public ProcessTimer getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_fieldAccessorTable;
    }
    
    public interface TimerInstanceOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // optional int64 id = 1;
      boolean hasId();
      long getId();
      
      // optional int64 timer_id = 2;
      boolean hasTimerId();
      long getTimerId();
      
      // optional int64 delay = 3;
      boolean hasDelay();
      long getDelay();
      
      // optional int64 period = 4;
      boolean hasPeriod();
      long getPeriod();
      
      // optional int64 process_instance_id = 5;
      boolean hasProcessInstanceId();
      long getProcessInstanceId();
      
      // optional int64 activated_time = 6;
      boolean hasActivatedTime();
      long getActivatedTime();
      
      // optional int64 last_triggered = 7;
      boolean hasLastTriggered();
      long getLastTriggered();
    }
    public static final class TimerInstance extends
        com.google.protobuf.GeneratedMessage
        implements TimerInstanceOrBuilder {
      // Use TimerInstance.newBuilder() to construct.
      private TimerInstance(Builder builder) {
        super(builder);
      }
      private TimerInstance(boolean noInit) {}
      
      private static final TimerInstance defaultInstance;
      public static TimerInstance getDefaultInstance() {
        return defaultInstance;
      }
      
      public TimerInstance getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_fieldAccessorTable;
      }
      
      private int bitField0_;
      // optional int64 id = 1;
      public static final int ID_FIELD_NUMBER = 1;
      private long id_;
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public long getId() {
        return id_;
      }
      
      // optional int64 timer_id = 2;
      public static final int TIMER_ID_FIELD_NUMBER = 2;
      private long timerId_;
      public boolean hasTimerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public long getTimerId() {
        return timerId_;
      }
      
      // optional int64 delay = 3;
      public static final int DELAY_FIELD_NUMBER = 3;
      private long delay_;
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public long getDelay() {
        return delay_;
      }
      
      // optional int64 period = 4;
      public static final int PERIOD_FIELD_NUMBER = 4;
      private long period_;
      public boolean hasPeriod() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public long getPeriod() {
        return period_;
      }
      
      // optional int64 process_instance_id = 5;
      public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 5;
      private long processInstanceId_;
      public boolean hasProcessInstanceId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public long getProcessInstanceId() {
        return processInstanceId_;
      }
      
      // optional int64 activated_time = 6;
      public static final int ACTIVATED_TIME_FIELD_NUMBER = 6;
      private long activatedTime_;
      public boolean hasActivatedTime() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public long getActivatedTime() {
        return activatedTime_;
      }
      
      // optional int64 last_triggered = 7;
      public static final int LAST_TRIGGERED_FIELD_NUMBER = 7;
      private long lastTriggered_;
      public boolean hasLastTriggered() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public long getLastTriggered() {
        return lastTriggered_;
      }
      
      private void initFields() {
        id_ = 0L;
        timerId_ = 0L;
        delay_ = 0L;
        period_ = 0L;
        processInstanceId_ = 0L;
        activatedTime_ = 0L;
        lastTriggered_ = 0L;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt64(1, id_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt64(2, timerId_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt64(3, delay_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt64(4, period_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeInt64(5, processInstanceId_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeInt64(6, activatedTime_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeInt64(7, lastTriggered_);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, id_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, timerId_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, delay_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(4, period_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(5, processInstanceId_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(6, activatedTime_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(7, lastTriggered_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      @java.lang.Override
      protected Object writeReplace() throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_fieldAccessorTable;
        }
        
        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          id_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000001);
          timerId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000002);
          delay_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000004);
          period_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000008);
          processInstanceId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000010);
          activatedTime_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000020);
          lastTriggered_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDescriptor();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance();
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance build() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance buildPartial() {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.id_ = id_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.timerId_ = timerId_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.delay_ = delay_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.period_ = period_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.processInstanceId_ = processInstanceId_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.activatedTime_ = activatedTime_;
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.lastTriggered_ = lastTriggered_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance) {
            return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance other) {
          if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance()) return this;
          if (other.hasId()) {
            setId(other.getId());
          }
          if (other.hasTimerId()) {
            setTimerId(other.getTimerId());
          }
          if (other.hasDelay()) {
            setDelay(other.getDelay());
          }
          if (other.hasPeriod()) {
            setPeriod(other.getPeriod());
          }
          if (other.hasProcessInstanceId()) {
            setProcessInstanceId(other.getProcessInstanceId());
          }
          if (other.hasActivatedTime()) {
            setActivatedTime(other.getActivatedTime());
          }
          if (other.hasLastTriggered()) {
            setLastTriggered(other.getLastTriggered());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                id_ = input.readInt64();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                timerId_ = input.readInt64();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                delay_ = input.readInt64();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                period_ = input.readInt64();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                processInstanceId_ = input.readInt64();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                activatedTime_ = input.readInt64();
                break;
              }
              case 56: {
                bitField0_ |= 0x00000040;
                lastTriggered_ = input.readInt64();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // optional int64 id = 1;
        private long id_ ;
        public boolean hasId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public long getId() {
          return id_;
        }
        public Builder setId(long value) {
          bitField0_ |= 0x00000001;
          id_ = value;
          onChanged();
          return this;
        }
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0L;
          onChanged();
          return this;
        }
        
        // optional int64 timer_id = 2;
        private long timerId_ ;
        public boolean hasTimerId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public long getTimerId() {
          return timerId_;
        }
        public Builder setTimerId(long value) {
          bitField0_ |= 0x00000002;
          timerId_ = value;
          onChanged();
          return this;
        }
        public Builder clearTimerId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          timerId_ = 0L;
          onChanged();
          return this;
        }
        
        // optional int64 delay = 3;
        private long delay_ ;
        public boolean hasDelay() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public long getDelay() {
          return delay_;
        }
        public Builder setDelay(long value) {
          bitField0_ |= 0x00000004;
          delay_ = value;
          onChanged();
          return this;
        }
        public Builder clearDelay() {
          bitField0_ = (bitField0_ & ~0x00000004);
          delay_ = 0L;
          onChanged();
          return this;
        }
        
        // optional int64 period = 4;
        private long period_ ;
        public boolean hasPeriod() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        public long getPeriod() {
          return period_;
        }
        public Builder setPeriod(long value) {
          bitField0_ |= 0x00000008;
          period_ = value;
          onChanged();
          return this;
        }
        public Builder clearPeriod() {
          bitField0_ = (bitField0_ & ~0x00000008);
          period_ = 0L;
          onChanged();
          return this;
        }
        
        // optional int64 process_instance_id = 5;
        private long processInstanceId_ ;
        public boolean hasProcessInstanceId() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        public long getProcessInstanceId() {
          return processInstanceId_;
        }
        public Builder setProcessInstanceId(long value) {
          bitField0_ |= 0x00000010;
          processInstanceId_ = value;
          onChanged();
          return this;
        }
        public Builder clearProcessInstanceId() {
          bitField0_ = (bitField0_ & ~0x00000010);
          processInstanceId_ = 0L;
          onChanged();
          return this;
        }
        
        // optional int64 activated_time = 6;
        private long activatedTime_ ;
        public boolean hasActivatedTime() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        public long getActivatedTime() {
          return activatedTime_;
        }
        public Builder setActivatedTime(long value) {
          bitField0_ |= 0x00000020;
          activatedTime_ = value;
          onChanged();
          return this;
        }
        public Builder clearActivatedTime() {
          bitField0_ = (bitField0_ & ~0x00000020);
          activatedTime_ = 0L;
          onChanged();
          return this;
        }
        
        // optional int64 last_triggered = 7;
        private long lastTriggered_ ;
        public boolean hasLastTriggered() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        public long getLastTriggered() {
          return lastTriggered_;
        }
        public Builder setLastTriggered(long value) {
          bitField0_ |= 0x00000040;
          lastTriggered_ = value;
          onChanged();
          return this;
        }
        public Builder clearLastTriggered() {
          bitField0_ = (bitField0_ & ~0x00000040);
          lastTriggered_ = 0L;
          onChanged();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessTimer.TimerInstance)
      }
      
      static {
        defaultInstance = new TimerInstance(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessTimer.TimerInstance)
    }
    
    private int bitField0_;
    // optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;
    public static final int TIMER_FIELD_NUMBER = 1;
    private org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance timer_;
    public boolean hasTimer() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getTimer() {
      return timer_;
    }
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder getTimerOrBuilder() {
      return timer_;
    }
    
    // optional .org.drools.marshalling.Trigger trigger = 2;
    public static final int TRIGGER_FIELD_NUMBER = 2;
    private org.drools.marshalling.impl.ProtobufMessages.Trigger trigger_;
    public boolean hasTrigger() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public org.drools.marshalling.impl.ProtobufMessages.Trigger getTrigger() {
      return trigger_;
    }
    public org.drools.marshalling.impl.ProtobufMessages.TriggerOrBuilder getTriggerOrBuilder() {
      return trigger_;
    }
    
    private void initFields() {
      timer_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance();
      trigger_ = org.drools.marshalling.impl.ProtobufMessages.Trigger.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, timer_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, trigger_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, timer_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, trigger_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    @java.lang.Override
    protected Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jbpm.marshalling.impl.JBPMMessages.ProcessTimerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_fieldAccessorTable;
      }
      
      // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getTimerFieldBuilder();
          getTriggerFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        if (timerBuilder_ == null) {
          timer_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance();
        } else {
          timerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (triggerBuilder_ == null) {
          trigger_ = org.drools.marshalling.impl.ProtobufMessages.Trigger.getDefaultInstance();
        } else {
          triggerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.getDescriptor();
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.getDefaultInstance();
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer build() {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer buildPartial() {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (timerBuilder_ == null) {
          result.timer_ = timer_;
        } else {
          result.timer_ = timerBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (triggerBuilder_ == null) {
          result.trigger_ = trigger_;
        } else {
          result.trigger_ = triggerBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer) {
          return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer other) {
        if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.getDefaultInstance()) return this;
        if (other.hasTimer()) {
          mergeTimer(other.getTimer());
        }
        if (other.hasTrigger()) {
          mergeTrigger(other.getTrigger());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 10: {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder subBuilder = org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.newBuilder();
              if (hasTimer()) {
                subBuilder.mergeFrom(getTimer());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setTimer(subBuilder.buildPartial());
              break;
            }
            case 18: {
              org.drools.marshalling.impl.ProtobufMessages.Trigger.Builder subBuilder = org.drools.marshalling.impl.ProtobufMessages.Trigger.newBuilder();
              if (hasTrigger()) {
                subBuilder.mergeFrom(getTrigger());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setTrigger(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance timer_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder> timerBuilder_;
      public boolean hasTimer() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getTimer() {
        if (timerBuilder_ == null) {
          return timer_;
        } else {
          return timerBuilder_.getMessage();
        }
      }
      public Builder setTimer(org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance value) {
        if (timerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timer_ = value;
          onChanged();
        } else {
          timerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder setTimer(
          org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder builderForValue) {
        if (timerBuilder_ == null) {
          timer_ = builderForValue.build();
          onChanged();
        } else {
          timerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder mergeTimer(org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance value) {
        if (timerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              timer_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance()) {
            timer_ =
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.newBuilder(timer_).mergeFrom(value).buildPartial();
          } else {
            timer_ = value;
          }
          onChanged();
        } else {
          timerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder clearTimer() {
        if (timerBuilder_ == null) {
          timer_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance();
          onChanged();
        } else {
          timerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder getTimerBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimerFieldBuilder().getBuilder();
      }
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder getTimerOrBuilder() {
        if (timerBuilder_ != null) {
          return timerBuilder_.getMessageOrBuilder();
        } else {
          return timer_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder> 
          getTimerFieldBuilder() {
        if (timerBuilder_ == null) {
          timerBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder>(
                  timer_,
                  getParentForChildren(),
                  isClean());
          timer_ = null;
        }
        return timerBuilder_;
      }
      
      // optional .org.drools.marshalling.Trigger trigger = 2;
      private org.drools.marshalling.impl.ProtobufMessages.Trigger trigger_ = org.drools.marshalling.impl.ProtobufMessages.Trigger.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          org.drools.marshalling.impl.ProtobufMessages.Trigger, org.drools.marshalling.impl.ProtobufMessages.Trigger.Builder, org.drools.marshalling.impl.ProtobufMessages.TriggerOrBuilder> triggerBuilder_;
      public boolean hasTrigger() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public org.drools.marshalling.impl.ProtobufMessages.Trigger getTrigger() {
        if (triggerBuilder_ == null) {
          return trigger_;
        } else {
          return triggerBuilder_.getMessage();
        }
      }
      public Builder setTrigger(org.drools.marshalling.impl.ProtobufMessages.Trigger value) {
        if (triggerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          trigger_ = value;
          onChanged();
        } else {
          triggerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder setTrigger(
          org.drools.marshalling.impl.ProtobufMessages.Trigger.Builder builderForValue) {
        if (triggerBuilder_ == null) {
          trigger_ = builderForValue.build();
          onChanged();
        } else {
          triggerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder mergeTrigger(org.drools.marshalling.impl.ProtobufMessages.Trigger value) {
        if (triggerBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              trigger_ != org.drools.marshalling.impl.ProtobufMessages.Trigger.getDefaultInstance()) {
            trigger_ =
              org.drools.marshalling.impl.ProtobufMessages.Trigger.newBuilder(trigger_).mergeFrom(value).buildPartial();
          } else {
            trigger_ = value;
          }
          onChanged();
        } else {
          triggerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder clearTrigger() {
        if (triggerBuilder_ == null) {
          trigger_ = org.drools.marshalling.impl.ProtobufMessages.Trigger.getDefaultInstance();
          onChanged();
        } else {
          triggerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      public org.drools.marshalling.impl.ProtobufMessages.Trigger.Builder getTriggerBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getTriggerFieldBuilder().getBuilder();
      }
      public org.drools.marshalling.impl.ProtobufMessages.TriggerOrBuilder getTriggerOrBuilder() {
        if (triggerBuilder_ != null) {
          return triggerBuilder_.getMessageOrBuilder();
        } else {
          return trigger_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          org.drools.marshalling.impl.ProtobufMessages.Trigger, org.drools.marshalling.impl.ProtobufMessages.Trigger.Builder, org.drools.marshalling.impl.ProtobufMessages.TriggerOrBuilder> 
          getTriggerFieldBuilder() {
        if (triggerBuilder_ == null) {
          triggerBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              org.drools.marshalling.impl.ProtobufMessages.Trigger, org.drools.marshalling.impl.ProtobufMessages.Trigger.Builder, org.drools.marshalling.impl.ProtobufMessages.TriggerOrBuilder>(
                  trigger_,
                  getParentForChildren(),
                  isClean());
          trigger_ = null;
        }
        return triggerBuilder_;
      }
      
      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessTimer)
    }
    
    static {
      defaultInstance = new ProcessTimer(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessTimer)
  }
  
  public static final int PROCESS_INSTANCE_FIELD_NUMBER = 10;
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.marshalling.impl.ProtobufMessages.ProcessData,
      java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance>> processInstance = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.class,
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.getDefaultInstance());
  public static final int WORK_ITEM_FIELD_NUMBER = 11;
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.marshalling.impl.ProtobufMessages.ProcessData,
      java.util.List<org.jbpm.marshalling.impl.JBPMMessages.WorkItem>> workItem = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        org.jbpm.marshalling.impl.JBPMMessages.WorkItem.class,
        org.jbpm.marshalling.impl.JBPMMessages.WorkItem.getDefaultInstance());
  public static final int PROCESS_TIMER_FIELD_NUMBER = 12;
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.marshalling.impl.ProtobufMessages.ProcessData,
      java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer>> processTimer = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.class,
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.getDefaultInstance());
  public static final int TIMER_ID_FIELD_NUMBER = 13;
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.marshalling.impl.ProtobufMessages.ProcessData,
      java.lang.Long> timerId = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        java.lang.Long.class,
        null);
  public static final int PROC_TIMER_FIELD_NUMBER = 100;
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.marshalling.impl.ProtobufMessages.Timers.Timer,
      org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer> procTimer = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.class,
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.getDefaultInstance());
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_Variable_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_Variable_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_WorkItem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_WorkItem_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessTimer_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessTimer_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\'org/jbpm/marshalling/jbpmmessages.prot" +
      "o\022\024org.jbpm.marshalling\032+org/drools/mars" +
      "halling/droolsmessages.proto\"\272\026\n\017Process" +
      "Instance\022\024\n\014process_type\030\001 \001(\t\022\n\n\002id\030\002 \001" +
      "(\003\022\022\n\nprocess_id\030\003 \001(\t\022\r\n\005state\030\004 \001(\005\022\035\n" +
      "\025node_instance_counter\030\005 \001(\003\022W\n\020swimlane" +
      "_context\030\006 \003(\0132=.org.jbpm.marshalling.Pr" +
      "ocessInstance.SwimlaneContextInstance\022I\n" +
      "\rnode_instance\030\007 \003(\01322.org.jbpm.marshall" +
      "ing.ProcessInstance.NodeInstance\0220\n\010vari",
      "able\030\010 \003(\0132\036.org.jbpm.marshalling.Variab" +
      "le\022U\n\017exclusive_group\030\n \003(\0132<.org.jbpm.m" +
      "arshalling.ProcessInstance.ExclusiveGrou" +
      "pInstance\032=\n\027SwimlaneContextInstance\022\020\n\010" +
      "swimlane\030\001 \001(\t\022\020\n\010actor_id\030\002 \001(\t\032w\n\014Node" +
      "Instance\022\n\n\002id\030\001 \001(\003\022\017\n\007node_id\030\002 \001(\003\022J\n" +
      "\007content\030\004 \001(\01329.org.jbpm.marshalling.Pr" +
      "ocessInstance.NodeInstanceContent\0328\n\026Exc" +
      "lusiveGroupInstance\022\036\n\026group_node_instan" +
      "ce_id\030\001 \003(\003\032\251\017\n\023NodeInstanceContent\022D\n\004t",
      "ype\030\001 \001(\01626.org.jbpm.marshalling.Process" +
      "Instance.NodeInstanceType\022W\n\010rule_set\030\002 " +
      "\001(\0132E.org.jbpm.marshalling.ProcessInstan" +
      "ce.NodeInstanceContent.RuleSetNode\022[\n\nhu" +
      "man_task\030\003 \001(\0132G.org.jbpm.marshalling.Pr" +
      "ocessInstance.NodeInstanceContent.HumanT" +
      "askNode\022Y\n\twork_item\030\004 \001(\0132F.org.jbpm.ma" +
      "rshalling.ProcessInstance.NodeInstanceCo" +
      "ntent.WorkItemNode\022]\n\013sub_process\030\005 \001(\0132" +
      "H.org.jbpm.marshalling.ProcessInstance.N",
      "odeInstanceContent.SubProcessNode\022Z\n\tmil" +
      "estone\030\006 \001(\0132G.org.jbpm.marshalling.Proc" +
      "essInstance.NodeInstanceContent.Mileston" +
      "eNode\022R\n\005event\030\007 \001(\0132C.org.jbpm.marshall" +
      "ing.ProcessInstance.NodeInstanceContent." +
      "EventNode\022R\n\005timer\030\010 \001(\0132C.org.jbpm.mars" +
      "halling.ProcessInstance.NodeInstanceCont" +
      "ent.TimerNode\022P\n\004join\030\t \001(\0132B.org.jbpm.m" +
      "arshalling.ProcessInstance.NodeInstanceC" +
      "ontent.JoinNode\022R\n\005state\030\n \001(\0132C.org.jbp",
      "m.marshalling.ProcessInstance.NodeInstan" +
      "ceContent.StateNode\022a\n\tcomposite\030\013 \001(\0132N" +
      ".org.jbpm.marshalling.ProcessInstance.No" +
      "deInstanceContent.CompositeContextNode\022W" +
      "\n\010for_each\030\014 \001(\0132E.org.jbpm.marshalling." +
      "ProcessInstance.NodeInstanceContent.ForE" +
      "achNode\032(\n\013RuleSetNode\022\031\n\021timer_instance" +
      "_id\030\001 \003(\003\032@\n\rHumanTaskNode\022\024\n\014work_item_" +
      "id\030\001 \001(\003\022\031\n\021timer_instance_id\030\002 \003(\003\032?\n\014W" +
      "orkItemNode\022\024\n\014work_item_id\030\001 \001(\003\022\031\n\021tim",
      "er_instance_id\030\002 \003(\003\032H\n\016SubProcessNode\022\033" +
      "\n\023process_instance_id\030\001 \001(\003\022\031\n\021timer_ins" +
      "tance_id\030\002 \003(\003\032*\n\rMilestoneNode\022\031\n\021timer" +
      "_instance_id\030\001 \003(\003\032\013\n\tEventNode\032\035\n\tTimer" +
      "Node\022\020\n\010timer_id\030\001 \001(\003\032\234\001\n\010JoinNode\022_\n\007t" +
      "rigger\030\001 \003(\0132N.org.jbpm.marshalling.Proc" +
      "essInstance.NodeInstanceContent.JoinNode" +
      ".JoinTrigger\032/\n\013JoinTrigger\022\017\n\007node_id\030\001" +
      " \001(\003\022\017\n\007counter\030\002 \001(\005\032&\n\tStateNode\022\031\n\021ti" +
      "mer_instance_id\030\001 \003(\003\032\205\002\n\024CompositeConte",
      "xtNode\022\031\n\021timer_instance_id\030\002 \003(\003\0220\n\010var" +
      "iable\030\003 \003(\0132\036.org.jbpm.marshalling.Varia" +
      "ble\022I\n\rnode_instance\030\004 \003(\01322.org.jbpm.ma" +
      "rshalling.ProcessInstance.NodeInstance\022U" +
      "\n\017exclusive_group\030\005 \003(\0132<.org.jbpm.marsh" +
      "alling.ProcessInstance.ExclusiveGroupIns" +
      "tance\032X\n\013ForEachNode\022I\n\rnode_instance\030\001 " +
      "\003(\01322.org.jbpm.marshalling.ProcessInstan" +
      "ce.NodeInstance\"\367\001\n\020NodeInstanceType\022\021\n\r" +
      "RULE_SET_NODE\020\000\022\023\n\017HUMAN_TASK_NODE\020\001\022\022\n\016",
      "WORK_ITEM_NODE\020\002\022\023\n\017SUBPROCESS_NODE\020\003\022\022\n" +
      "\016MILESTONE_NODE\020\004\022\016\n\nEVENT_NODE\020\005\022\016\n\nTIM" +
      "ER_NODE\020\006\022\r\n\tJOIN_NODE\020\007\022\016\n\nSTATE_NODE\020\010" +
      "\022\032\n\026COMPOSITE_CONTEXT_NODE\020\t\022\021\n\rFOR_EACH" +
      "_NODE\020\n\022\020\n\014DYNAMIC_NODE\020\013\"?\n\010Variable\022\014\n" +
      "\004name\030\001 \001(\t\022\026\n\016strategy_index\030\002 \001(\005\022\r\n\005v" +
      "alue\030\003 \001(\014\"\203\001\n\010WorkItem\022\n\n\002id\030\001 \001(\003\022\034\n\024p" +
      "rocess_instances_id\030\002 \001(\003\022\014\n\004name\030\003 \001(\t\022" +
      "\r\n\005state\030\004 \001(\005\0220\n\010variable\030\005 \003(\0132\036.org.j" +
      "bpm.marshalling.Variable\"\235\002\n\014ProcessTime",
      "r\022?\n\005timer\030\001 \001(\01320.org.jbpm.marshalling." +
      "ProcessTimer.TimerInstance\0220\n\007trigger\030\002 " +
      "\001(\0132\037.org.drools.marshalling.Trigger\032\231\001\n" +
      "\rTimerInstance\022\n\n\002id\030\001 \001(\003\022\020\n\010timer_id\030\002" +
      " \001(\003\022\r\n\005delay\030\003 \001(\003\022\016\n\006period\030\004 \001(\003\022\033\n\023p" +
      "rocess_instance_id\030\005 \001(\003\022\026\n\016activated_ti" +
      "me\030\006 \001(\003\022\026\n\016last_triggered\030\007 \001(\003:d\n\020proc" +
      "ess_instance\022#.org.drools.marshalling.Pr" +
      "ocessData\030\n \003(\0132%.org.jbpm.marshalling.P" +
      "rocessInstance:V\n\twork_item\022#.org.drools",
      ".marshalling.ProcessData\030\013 \003(\0132\036.org.jbp" +
      "m.marshalling.WorkItem:^\n\rprocess_timer\022" +
      "#.org.drools.marshalling.ProcessData\030\014 \003" +
      "(\0132\".org.jbpm.marshalling.ProcessTimer:5" +
      "\n\010timer_id\022#.org.drools.marshalling.Proc" +
      "essData\030\r \001(\003:\\\n\nproc_timer\022$.org.drools" +
      ".marshalling.Timers.Timer\030d \001(\0132\".org.jb" +
      "pm.marshalling.ProcessTimerB)\n\031org.jbpm." +
      "marshalling.implB\014JBPMMessages"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_org_jbpm_marshalling_ProcessInstance_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_org_jbpm_marshalling_ProcessInstance_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_descriptor,
              new java.lang.String[] { "ProcessType", "Id", "ProcessId", "State", "NodeInstanceCounter", "SwimlaneContext", "NodeInstance", "Variable", "ExclusiveGroup", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_descriptor.getNestedTypes().get(0);
          internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_descriptor,
              new java.lang.String[] { "Swimlane", "ActorId", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_descriptor.getNestedTypes().get(1);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_descriptor,
              new java.lang.String[] { "Id", "NodeId", "Content", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_descriptor.getNestedTypes().get(2);
          internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_descriptor,
              new java.lang.String[] { "GroupNodeInstanceId", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_descriptor.getNestedTypes().get(3);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor,
              new java.lang.String[] { "Type", "RuleSet", "HumanTask", "WorkItem", "SubProcess", "Milestone", "Event", "Timer", "Join", "State", "Composite", "ForEach", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(0);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor,
              new java.lang.String[] { "TimerInstanceId", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(1);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_descriptor,
              new java.lang.String[] { "WorkItemId", "TimerInstanceId", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(2);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_descriptor,
              new java.lang.String[] { "WorkItemId", "TimerInstanceId", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(3);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_descriptor,
              new java.lang.String[] { "ProcessInstanceId", "TimerInstanceId", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(4);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_descriptor,
              new java.lang.String[] { "TimerInstanceId", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(5);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_descriptor,
              new java.lang.String[] { },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(6);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_descriptor,
              new java.lang.String[] { "TimerId", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(7);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_descriptor,
              new java.lang.String[] { "Trigger", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_descriptor.getNestedTypes().get(0);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_descriptor,
              new java.lang.String[] { "NodeId", "Counter", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(8);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_descriptor,
              new java.lang.String[] { "TimerInstanceId", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(9);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_descriptor,
              new java.lang.String[] { "TimerInstanceId", "Variable", "NodeInstance", "ExclusiveGroup", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_descriptor =
            internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(10);
          internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_descriptor,
              new java.lang.String[] { "NodeInstance", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder.class);
          internal_static_org_jbpm_marshalling_Variable_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_org_jbpm_marshalling_Variable_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_Variable_descriptor,
              new java.lang.String[] { "Name", "StrategyIndex", "Value", },
              org.jbpm.marshalling.impl.JBPMMessages.Variable.class,
              org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder.class);
          internal_static_org_jbpm_marshalling_WorkItem_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_org_jbpm_marshalling_WorkItem_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_WorkItem_descriptor,
              new java.lang.String[] { "Id", "ProcessInstancesId", "Name", "State", "Variable", },
              org.jbpm.marshalling.impl.JBPMMessages.WorkItem.class,
              org.jbpm.marshalling.impl.JBPMMessages.WorkItem.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessTimer_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_org_jbpm_marshalling_ProcessTimer_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessTimer_descriptor,
              new java.lang.String[] { "Timer", "Trigger", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.Builder.class);
          internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_descriptor =
            internal_static_org_jbpm_marshalling_ProcessTimer_descriptor.getNestedTypes().get(0);
          internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_descriptor,
              new java.lang.String[] { "Id", "TimerId", "Delay", "Period", "ProcessInstanceId", "ActivatedTime", "LastTriggered", },
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.class,
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder.class);
          processInstance.internalInit(descriptor.getExtensions().get(0));
          workItem.internalInit(descriptor.getExtensions().get(1));
          processTimer.internalInit(descriptor.getExtensions().get(2));
          timerId.internalInit(descriptor.getExtensions().get(3));
          procTimer.internalInit(descriptor.getExtensions().get(4));
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          org.drools.marshalling.impl.ProtobufMessages.getDescriptor(),
        }, assigner);
  }
  
  // @@protoc_insertion_point(outer_class_scope)
}
