// 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.timerId);
    registry.add(org.jbpm.marshalling.impl.JBPMMessages.processTimer);
    registry.add(org.jbpm.marshalling.impl.JBPMMessages.procTimer);
  }
  public interface ProcessInstanceOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string process_type = 1;
    /**
     * <code>optional string process_type = 1;</code>
     */
    boolean hasProcessType();
    /**
     * <code>optional string process_type = 1;</code>
     */
    java.lang.String getProcessType();
    /**
     * <code>optional string process_type = 1;</code>
     */
    com.google.protobuf.ByteString
        getProcessTypeBytes();

    // optional int64 id = 2;
    /**
     * <code>optional int64 id = 2;</code>
     */
    boolean hasId();
    /**
     * <code>optional int64 id = 2;</code>
     */
    long getId();

    // optional string process_id = 3;
    /**
     * <code>optional string process_id = 3;</code>
     */
    boolean hasProcessId();
    /**
     * <code>optional string process_id = 3;</code>
     */
    java.lang.String getProcessId();
    /**
     * <code>optional string process_id = 3;</code>
     */
    com.google.protobuf.ByteString
        getProcessIdBytes();

    // optional int32 state = 4;
    /**
     * <code>optional int32 state = 4;</code>
     */
    boolean hasState();
    /**
     * <code>optional int32 state = 4;</code>
     */
    int getState();

    // optional int64 node_instance_counter = 5;
    /**
     * <code>optional int64 node_instance_counter = 5;</code>
     */
    boolean hasNodeInstanceCounter();
    /**
     * <code>optional int64 node_instance_counter = 5;</code>
     */
    long getNodeInstanceCounter();

    // repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance> 
        getSwimlaneContextList();
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getSwimlaneContext(int index);
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    int getSwimlaneContextCount();
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder> 
        getSwimlaneContextOrBuilderList();
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder getSwimlaneContextOrBuilder(
        int index);

    // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> 
        getNodeInstanceList();
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index);
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    int getNodeInstanceCount();
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
        getNodeInstanceOrBuilderList();
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
        int index);

    // repeated .org.jbpm.marshalling.Variable variable = 8;
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> 
        getVariableList();
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index);
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    int getVariableCount();
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList();
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index);

    // repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> 
        getExclusiveGroupList();
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index);
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    int getExclusiveGroupCount();
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
        getExclusiveGroupOrBuilderList();
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.ProcessInstance}
   */
  public static final class ProcessInstance extends
      com.google.protobuf.GeneratedMessage
      implements ProcessInstanceOrBuilder {
    // Use ProcessInstance.newBuilder() to construct.
    private ProcessInstance(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ProcessInstance(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final ProcessInstance defaultInstance;
    public static ProcessInstance getDefaultInstance() {
      return defaultInstance;
    }

    public ProcessInstance getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ProcessInstance(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              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: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                swimlaneContext_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance>();
                mutable_bitField0_ |= 0x00000020;
              }
              swimlaneContext_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.PARSER, extensionRegistry));
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>();
                mutable_bitField0_ |= 0x00000040;
              }
              nodeInstance_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.PARSER, extensionRegistry));
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>();
                mutable_bitField0_ |= 0x00000080;
              }
              variable_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.Variable.PARSER, extensionRegistry));
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                exclusiveGroup_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance>();
                mutable_bitField0_ |= 0x00000100;
              }
              exclusiveGroup_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          swimlaneContext_ = java.util.Collections.unmodifiableList(swimlaneContext_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          variable_ = java.util.Collections.unmodifiableList(variable_);
        }
        if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
          exclusiveGroup_ = java.util.Collections.unmodifiableList(exclusiveGroup_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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
          .ensureFieldAccessorsInitialized(
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.Builder.class);
    }

    public static com.google.protobuf.Parser<ProcessInstance> PARSER =
        new com.google.protobuf.AbstractParser<ProcessInstance>() {
      public ProcessInstance parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ProcessInstance(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<ProcessInstance> getParserForType() {
      return PARSER;
    }

    /**
     * Protobuf enum {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceType}
     */
    public enum NodeInstanceType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>RULE_SET_NODE = 0;</code>
       */
      RULE_SET_NODE(0, 0),
      /**
       * <code>HUMAN_TASK_NODE = 1;</code>
       */
      HUMAN_TASK_NODE(1, 1),
      /**
       * <code>WORK_ITEM_NODE = 2;</code>
       */
      WORK_ITEM_NODE(2, 2),
      /**
       * <code>SUBPROCESS_NODE = 3;</code>
       */
      SUBPROCESS_NODE(3, 3),
      /**
       * <code>MILESTONE_NODE = 4;</code>
       */
      MILESTONE_NODE(4, 4),
      /**
       * <code>EVENT_NODE = 5;</code>
       */
      EVENT_NODE(5, 5),
      /**
       * <code>TIMER_NODE = 6;</code>
       */
      TIMER_NODE(6, 6),
      /**
       * <code>JOIN_NODE = 7;</code>
       */
      JOIN_NODE(7, 7),
      /**
       * <code>STATE_NODE = 8;</code>
       */
      STATE_NODE(8, 8),
      /**
       * <code>COMPOSITE_CONTEXT_NODE = 9;</code>
       */
      COMPOSITE_CONTEXT_NODE(9, 9),
      /**
       * <code>FOR_EACH_NODE = 10;</code>
       */
      FOR_EACH_NODE(10, 10),
      /**
       * <code>DYNAMIC_NODE = 11;</code>
       */
      DYNAMIC_NODE(11, 11),
      ;

      /**
       * <code>RULE_SET_NODE = 0;</code>
       */
      public static final int RULE_SET_NODE_VALUE = 0;
      /**
       * <code>HUMAN_TASK_NODE = 1;</code>
       */
      public static final int HUMAN_TASK_NODE_VALUE = 1;
      /**
       * <code>WORK_ITEM_NODE = 2;</code>
       */
      public static final int WORK_ITEM_NODE_VALUE = 2;
      /**
       * <code>SUBPROCESS_NODE = 3;</code>
       */
      public static final int SUBPROCESS_NODE_VALUE = 3;
      /**
       * <code>MILESTONE_NODE = 4;</code>
       */
      public static final int MILESTONE_NODE_VALUE = 4;
      /**
       * <code>EVENT_NODE = 5;</code>
       */
      public static final int EVENT_NODE_VALUE = 5;
      /**
       * <code>TIMER_NODE = 6;</code>
       */
      public static final int TIMER_NODE_VALUE = 6;
      /**
       * <code>JOIN_NODE = 7;</code>
       */
      public static final int JOIN_NODE_VALUE = 7;
      /**
       * <code>STATE_NODE = 8;</code>
       */
      public static final int STATE_NODE_VALUE = 8;
      /**
       * <code>COMPOSITE_CONTEXT_NODE = 9;</code>
       */
      public static final int COMPOSITE_CONTEXT_NODE_VALUE = 9;
      /**
       * <code>FOR_EACH_NODE = 10;</code>
       */
      public static final int FOR_EACH_NODE_VALUE = 10;
      /**
       * <code>DYNAMIC_NODE = 11;</code>
       */
      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 = values();

      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;
      /**
       * <code>optional string swimlane = 1;</code>
       */
      boolean hasSwimlane();
      /**
       * <code>optional string swimlane = 1;</code>
       */
      java.lang.String getSwimlane();
      /**
       * <code>optional string swimlane = 1;</code>
       */
      com.google.protobuf.ByteString
          getSwimlaneBytes();

      // optional string actor_id = 2;
      /**
       * <code>optional string actor_id = 2;</code>
       */
      boolean hasActorId();
      /**
       * <code>optional string actor_id = 2;</code>
       */
      java.lang.String getActorId();
      /**
       * <code>optional string actor_id = 2;</code>
       */
      com.google.protobuf.ByteString
          getActorIdBytes();
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance}
     */
    public static final class SwimlaneContextInstance extends
        com.google.protobuf.GeneratedMessage
        implements SwimlaneContextInstanceOrBuilder {
      // Use SwimlaneContextInstance.newBuilder() to construct.
      private SwimlaneContextInstance(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SwimlaneContextInstance(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SwimlaneContextInstance defaultInstance;
      public static SwimlaneContextInstance getDefaultInstance() {
        return defaultInstance;
      }

      public SwimlaneContextInstance getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SwimlaneContextInstance(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                bitField0_ |= 0x00000001;
                swimlane_ = input.readBytes();
                break;
              }
              case 18: {
                bitField0_ |= 0x00000002;
                actorId_ = input.readBytes();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      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
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder.class);
      }

      public static com.google.protobuf.Parser<SwimlaneContextInstance> PARSER =
          new com.google.protobuf.AbstractParser<SwimlaneContextInstance>() {
        public SwimlaneContextInstance parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SwimlaneContextInstance(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<SwimlaneContextInstance> getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional string swimlane = 1;
      public static final int SWIMLANE_FIELD_NUMBER = 1;
      private java.lang.Object swimlane_;
      /**
       * <code>optional string swimlane = 1;</code>
       */
      public boolean hasSwimlane() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string swimlane = 1;</code>
       */
      public java.lang.String getSwimlane() {
        java.lang.Object ref = swimlane_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            swimlane_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string swimlane = 1;</code>
       */
      public com.google.protobuf.ByteString
          getSwimlaneBytes() {
        java.lang.Object ref = swimlane_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.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 java.lang.Object actorId_;
      /**
       * <code>optional string actor_id = 2;</code>
       */
      public boolean hasActorId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string actor_id = 2;</code>
       */
      public java.lang.String getActorId() {
        java.lang.Object ref = actorId_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            actorId_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string actor_id = 2;</code>
       */
      public com.google.protobuf.ByteString
          getActorIdBytes() {
        java.lang.Object ref = actorId_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.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;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.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 PARSER.parseFrom(data);
      }
      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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      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 PARSER.parseFrom(input, extensionRegistry);
      }

      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;
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance}
       */
      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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder.class);
        }

        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_descriptor;
        }

        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;
        }

        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()) {
            bitField0_ |= 0x00000001;
            swimlane_ = other.swimlane_;
            onChanged();
          }
          if (other.hasActorId()) {
            bitField0_ |= 0x00000002;
            actorId_ = other.actorId_;
            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 {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional string swimlane = 1;
        private java.lang.Object swimlane_ = "";
        /**
         * <code>optional string swimlane = 1;</code>
         */
        public boolean hasSwimlane() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional string swimlane = 1;</code>
         */
        public java.lang.String getSwimlane() {
          java.lang.Object ref = swimlane_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((com.google.protobuf.ByteString) ref)
                .toStringUtf8();
            swimlane_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string swimlane = 1;</code>
         */
        public com.google.protobuf.ByteString
            getSwimlaneBytes() {
          java.lang.Object ref = swimlane_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            swimlane_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string swimlane = 1;</code>
         */
        public Builder setSwimlane(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          swimlane_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string swimlane = 1;</code>
         */
        public Builder clearSwimlane() {
          bitField0_ = (bitField0_ & ~0x00000001);
          swimlane_ = getDefaultInstance().getSwimlane();
          onChanged();
          return this;
        }
        /**
         * <code>optional string swimlane = 1;</code>
         */
        public Builder setSwimlaneBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          swimlane_ = value;
          onChanged();
          return this;
        }

        // optional string actor_id = 2;
        private java.lang.Object actorId_ = "";
        /**
         * <code>optional string actor_id = 2;</code>
         */
        public boolean hasActorId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional string actor_id = 2;</code>
         */
        public java.lang.String getActorId() {
          java.lang.Object ref = actorId_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((com.google.protobuf.ByteString) ref)
                .toStringUtf8();
            actorId_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string actor_id = 2;</code>
         */
        public com.google.protobuf.ByteString
            getActorIdBytes() {
          java.lang.Object ref = actorId_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            actorId_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string actor_id = 2;</code>
         */
        public Builder setActorId(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          actorId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string actor_id = 2;</code>
         */
        public Builder clearActorId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          actorId_ = getDefaultInstance().getActorId();
          onChanged();
          return this;
        }
        /**
         * <code>optional string actor_id = 2;</code>
         */
        public Builder setActorIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          actorId_ = value;
          onChanged();
          return this;
        }

        // @@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;
      /**
       * <code>optional int64 id = 1;</code>
       */
      boolean hasId();
      /**
       * <code>optional int64 id = 1;</code>
       */
      long getId();

      // optional int64 node_id = 2;
      /**
       * <code>optional int64 node_id = 2;</code>
       */
      boolean hasNodeId();
      /**
       * <code>optional int64 node_id = 2;</code>
       */
      long getNodeId();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       */
      boolean hasContent();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getContent();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder getContentOrBuilder();
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstance}
     */
    public static final class NodeInstance extends
        com.google.protobuf.GeneratedMessage
        implements NodeInstanceOrBuilder {
      // Use NodeInstance.newBuilder() to construct.
      private NodeInstance(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private NodeInstance(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final NodeInstance defaultInstance;
      public static NodeInstance getDefaultInstance() {
        return defaultInstance;
      }

      public NodeInstance getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private NodeInstance(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                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 = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = content_.toBuilder();
                }
                content_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(content_);
                  content_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      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
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder.class);
      }

      public static com.google.protobuf.Parser<NodeInstance> PARSER =
          new com.google.protobuf.AbstractParser<NodeInstance>() {
        public NodeInstance parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new NodeInstance(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<NodeInstance> getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int64 id = 1;
      public static final int ID_FIELD_NUMBER = 1;
      private long id_;
      /**
       * <code>optional int64 id = 1;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int64 id = 1;</code>
       */
      public long getId() {
        return id_;
      }

      // optional int64 node_id = 2;
      public static final int NODE_ID_FIELD_NUMBER = 2;
      private long nodeId_;
      /**
       * <code>optional int64 node_id = 2;</code>
       */
      public boolean hasNodeId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int64 node_id = 2;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       */
      public boolean hasContent() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getContent() {
        return content_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       */
      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;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.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 PARSER.parseFrom(data);
      }
      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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      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 PARSER.parseFrom(input, extensionRegistry);
      }

      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;
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstance}
       */
      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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder.class);
        }

        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_descriptor;
        }

        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;
        }

        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 {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int64 id = 1;
        private long id_ ;
        /**
         * <code>optional int64 id = 1;</code>
         */
        public boolean hasId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int64 id = 1;</code>
         */
        public long getId() {
          return id_;
        }
        /**
         * <code>optional int64 id = 1;</code>
         */
        public Builder setId(long value) {
          bitField0_ |= 0x00000001;
          id_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 id = 1;</code>
         */
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0L;
          onChanged();
          return this;
        }

        // optional int64 node_id = 2;
        private long nodeId_ ;
        /**
         * <code>optional int64 node_id = 2;</code>
         */
        public boolean hasNodeId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional int64 node_id = 2;</code>
         */
        public long getNodeId() {
          return nodeId_;
        }
        /**
         * <code>optional int64 node_id = 2;</code>
         */
        public Builder setNodeId(long value) {
          bitField0_ |= 0x00000002;
          nodeId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 node_id = 2;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        public boolean hasContent() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getContent() {
          if (contentBuilder_ == null) {
            return content_;
          } else {
            return contentBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        public Builder clearContent() {
          if (contentBuilder_ == null) {
            content_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance();
            onChanged();
          } else {
            contentBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder getContentBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getContentFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder getContentOrBuilder() {
          if (contentBuilder_ != null) {
            return contentBuilder_.getMessageOrBuilder();
          } else {
            return content_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        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;
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       */
      java.util.List<java.lang.Long> getGroupNodeInstanceIdList();
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       */
      int getGroupNodeInstanceIdCount();
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       */
      long getGroupNodeInstanceId(int index);
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance}
     */
    public static final class ExclusiveGroupInstance extends
        com.google.protobuf.GeneratedMessage
        implements ExclusiveGroupInstanceOrBuilder {
      // Use ExclusiveGroupInstance.newBuilder() to construct.
      private ExclusiveGroupInstance(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private ExclusiveGroupInstance(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final ExclusiveGroupInstance defaultInstance;
      public static ExclusiveGroupInstance getDefaultInstance() {
        return defaultInstance;
      }

      public ExclusiveGroupInstance getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private ExclusiveGroupInstance(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  groupNodeInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                  mutable_bitField0_ |= 0x00000001;
                }
                groupNodeInstanceId_.add(input.readInt64());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                  groupNodeInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                  mutable_bitField0_ |= 0x00000001;
                }
                while (input.getBytesUntilLimit() > 0) {
                  groupNodeInstanceId_.add(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
            groupNodeInstanceId_ = java.util.Collections.unmodifiableList(groupNodeInstanceId_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      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
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder.class);
      }

      public static com.google.protobuf.Parser<ExclusiveGroupInstance> PARSER =
          new com.google.protobuf.AbstractParser<ExclusiveGroupInstance>() {
        public ExclusiveGroupInstance parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ExclusiveGroupInstance(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<ExclusiveGroupInstance> getParserForType() {
        return PARSER;
      }

      // 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_;
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       */
      public java.util.List<java.lang.Long>
          getGroupNodeInstanceIdList() {
        return groupNodeInstanceId_;
      }
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       */
      public int getGroupNodeInstanceIdCount() {
        return groupNodeInstanceId_.size();
      }
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       */
      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;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.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 PARSER.parseFrom(data);
      }
      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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      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 PARSER.parseFrom(input, extensionRegistry);
      }

      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;
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance}
       */
      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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder.class);
        }

        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_descriptor;
        }

        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;
        }

        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 {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        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;
           }
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         */
        public java.util.List<java.lang.Long>
            getGroupNodeInstanceIdList() {
          return java.util.Collections.unmodifiableList(groupNodeInstanceId_);
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         */
        public int getGroupNodeInstanceIdCount() {
          return groupNodeInstanceId_.size();
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         */
        public long getGroupNodeInstanceId(int index) {
          return groupNodeInstanceId_.get(index);
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         */
        public Builder setGroupNodeInstanceId(
            int index, long value) {
          ensureGroupNodeInstanceIdIsMutable();
          groupNodeInstanceId_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         */
        public Builder addGroupNodeInstanceId(long value) {
          ensureGroupNodeInstanceIdIsMutable();
          groupNodeInstanceId_.add(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         */
        public Builder addAllGroupNodeInstanceId(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureGroupNodeInstanceIdIsMutable();
          super.addAll(values, groupNodeInstanceId_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         */
        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;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
       */
      boolean hasType();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType getType();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       */
      boolean hasRuleSet();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getRuleSet();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder getRuleSetOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       */
      boolean hasHumanTask();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getHumanTask();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder getHumanTaskOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       */
      boolean hasWorkItem();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getWorkItem();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder getWorkItemOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       */
      boolean hasSubProcess();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getSubProcess();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder getSubProcessOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       */
      boolean hasMilestone();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getMilestone();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder getMilestoneOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       */
      boolean hasEvent();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getEvent();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder getEventOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       */
      boolean hasTimer();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getTimer();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder getTimerOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       */
      boolean hasJoin();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getJoin();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder getJoinOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       */
      boolean hasState();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getState();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder getStateOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       */
      boolean hasComposite();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getComposite();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder getCompositeOrBuilder();

      // optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       */
      boolean hasForEach();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getForEach();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder getForEachOrBuilder();
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent}
     */
    public static final class NodeInstanceContent extends
        com.google.protobuf.GeneratedMessage
        implements NodeInstanceContentOrBuilder {
      // Use NodeInstanceContent.newBuilder() to construct.
      private NodeInstanceContent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private NodeInstanceContent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final NodeInstanceContent defaultInstance;
      public static NodeInstanceContent getDefaultInstance() {
        return defaultInstance;
      }

      public NodeInstanceContent getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private NodeInstanceContent(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                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 = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = ruleSet_.toBuilder();
                }
                ruleSet_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(ruleSet_);
                  ruleSet_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
              case 26: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = humanTask_.toBuilder();
                }
                humanTask_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(humanTask_);
                  humanTask_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
              case 34: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = workItem_.toBuilder();
                }
                workItem_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(workItem_);
                  workItem_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
              case 42: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = subProcess_.toBuilder();
                }
                subProcess_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(subProcess_);
                  subProcess_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
              case 50: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = milestone_.toBuilder();
                }
                milestone_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(milestone_);
                  milestone_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
              case 58: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  subBuilder = event_.toBuilder();
                }
                event_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(event_);
                  event_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000040;
                break;
              }
              case 66: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000080) == 0x00000080)) {
                  subBuilder = timer_.toBuilder();
                }
                timer_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(timer_);
                  timer_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000080;
                break;
              }
              case 74: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000100) == 0x00000100)) {
                  subBuilder = join_.toBuilder();
                }
                join_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(join_);
                  join_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000100;
                break;
              }
              case 82: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000200) == 0x00000200)) {
                  subBuilder = state_.toBuilder();
                }
                state_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(state_);
                  state_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000200;
                break;
              }
              case 90: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000400) == 0x00000400)) {
                  subBuilder = composite_.toBuilder();
                }
                composite_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(composite_);
                  composite_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000400;
                break;
              }
              case 98: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000800) == 0x00000800)) {
                  subBuilder = forEach_.toBuilder();
                }
                forEach_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(forEach_);
                  forEach_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000800;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      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
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder.class);
      }

      public static com.google.protobuf.Parser<NodeInstanceContent> PARSER =
          new com.google.protobuf.AbstractParser<NodeInstanceContent>() {
        public NodeInstanceContent parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new NodeInstanceContent(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<NodeInstanceContent> getParserForType() {
        return PARSER;
      }

      public interface RuleSetNodeOrBuilder
          extends com.google.protobuf.MessageOrBuilder {

        // repeated int64 timer_instance_id = 1;
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode}
       */
      public static final class RuleSetNode extends
          com.google.protobuf.GeneratedMessage
          implements RuleSetNodeOrBuilder {
        // Use RuleSetNode.newBuilder() to construct.
        private RuleSetNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private RuleSetNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final RuleSetNode defaultInstance;
        public static RuleSetNode getDefaultInstance() {
          return defaultInstance;
        }

        public RuleSetNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private RuleSetNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.add(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder.class);
        }

        public static com.google.protobuf.Parser<RuleSetNode> PARSER =
            new com.google.protobuf.AbstractParser<RuleSetNode>() {
          public RuleSetNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new RuleSetNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<RuleSetNode> getParserForType() {
          return PARSER;
        }

        // repeated int64 timer_instance_id = 1;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        private java.util.List<java.lang.Long> timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          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;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          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;
        /**
         * <code>optional int64 work_item_id = 1;</code>
         */
        boolean hasWorkItemId();
        /**
         * <code>optional int64 work_item_id = 1;</code>
         */
        long getWorkItemId();

        // repeated int64 timer_instance_id = 2;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode}
       */
      public static final class HumanTaskNode extends
          com.google.protobuf.GeneratedMessage
          implements HumanTaskNodeOrBuilder {
        // Use HumanTaskNode.newBuilder() to construct.
        private HumanTaskNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private HumanTaskNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final HumanTaskNode defaultInstance;
        public static HumanTaskNode getDefaultInstance() {
          return defaultInstance;
        }

        public HumanTaskNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private HumanTaskNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  workItemId_ = input.readInt64();
                  break;
                }
                case 16: {
                  if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.add(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder.class);
        }

        public static com.google.protobuf.Parser<HumanTaskNode> PARSER =
            new com.google.protobuf.AbstractParser<HumanTaskNode>() {
          public HumanTaskNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new HumanTaskNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<HumanTaskNode> getParserForType() {
          return PARSER;
        }

        private int bitField0_;
        // optional int64 work_item_id = 1;
        public static final int WORK_ITEM_ID_FIELD_NUMBER = 1;
        private long workItemId_;
        /**
         * <code>optional int64 work_item_id = 1;</code>
         */
        public boolean hasWorkItemId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int64 work_item_id = 1;</code>
         */
        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_;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          // optional int64 work_item_id = 1;
          private long workItemId_ ;
          /**
           * <code>optional int64 work_item_id = 1;</code>
           */
          public boolean hasWorkItemId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           */
          public long getWorkItemId() {
            return workItemId_;
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           */
          public Builder setWorkItemId(long value) {
            bitField0_ |= 0x00000001;
            workItemId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           */
          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;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          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;
        /**
         * <code>optional int64 work_item_id = 1;</code>
         */
        boolean hasWorkItemId();
        /**
         * <code>optional int64 work_item_id = 1;</code>
         */
        long getWorkItemId();

        // repeated int64 timer_instance_id = 2;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode}
       */
      public static final class WorkItemNode extends
          com.google.protobuf.GeneratedMessage
          implements WorkItemNodeOrBuilder {
        // Use WorkItemNode.newBuilder() to construct.
        private WorkItemNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private WorkItemNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final WorkItemNode defaultInstance;
        public static WorkItemNode getDefaultInstance() {
          return defaultInstance;
        }

        public WorkItemNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private WorkItemNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  workItemId_ = input.readInt64();
                  break;
                }
                case 16: {
                  if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.add(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder.class);
        }

        public static com.google.protobuf.Parser<WorkItemNode> PARSER =
            new com.google.protobuf.AbstractParser<WorkItemNode>() {
          public WorkItemNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new WorkItemNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<WorkItemNode> getParserForType() {
          return PARSER;
        }

        private int bitField0_;
        // optional int64 work_item_id = 1;
        public static final int WORK_ITEM_ID_FIELD_NUMBER = 1;
        private long workItemId_;
        /**
         * <code>optional int64 work_item_id = 1;</code>
         */
        public boolean hasWorkItemId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int64 work_item_id = 1;</code>
         */
        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_;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          // optional int64 work_item_id = 1;
          private long workItemId_ ;
          /**
           * <code>optional int64 work_item_id = 1;</code>
           */
          public boolean hasWorkItemId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           */
          public long getWorkItemId() {
            return workItemId_;
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           */
          public Builder setWorkItemId(long value) {
            bitField0_ |= 0x00000001;
            workItemId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           */
          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;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          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;
        /**
         * <code>optional int64 process_instance_id = 1;</code>
         */
        boolean hasProcessInstanceId();
        /**
         * <code>optional int64 process_instance_id = 1;</code>
         */
        long getProcessInstanceId();

        // repeated int64 timer_instance_id = 2;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode}
       */
      public static final class SubProcessNode extends
          com.google.protobuf.GeneratedMessage
          implements SubProcessNodeOrBuilder {
        // Use SubProcessNode.newBuilder() to construct.
        private SubProcessNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private SubProcessNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final SubProcessNode defaultInstance;
        public static SubProcessNode getDefaultInstance() {
          return defaultInstance;
        }

        public SubProcessNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private SubProcessNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  processInstanceId_ = input.readInt64();
                  break;
                }
                case 16: {
                  if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.add(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder.class);
        }

        public static com.google.protobuf.Parser<SubProcessNode> PARSER =
            new com.google.protobuf.AbstractParser<SubProcessNode>() {
          public SubProcessNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SubProcessNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<SubProcessNode> getParserForType() {
          return PARSER;
        }

        private int bitField0_;
        // optional int64 process_instance_id = 1;
        public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 1;
        private long processInstanceId_;
        /**
         * <code>optional int64 process_instance_id = 1;</code>
         */
        public boolean hasProcessInstanceId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int64 process_instance_id = 1;</code>
         */
        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_;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          // optional int64 process_instance_id = 1;
          private long processInstanceId_ ;
          /**
           * <code>optional int64 process_instance_id = 1;</code>
           */
          public boolean hasProcessInstanceId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <code>optional int64 process_instance_id = 1;</code>
           */
          public long getProcessInstanceId() {
            return processInstanceId_;
          }
          /**
           * <code>optional int64 process_instance_id = 1;</code>
           */
          public Builder setProcessInstanceId(long value) {
            bitField0_ |= 0x00000001;
            processInstanceId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 process_instance_id = 1;</code>
           */
          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;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          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;
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode}
       */
      public static final class MilestoneNode extends
          com.google.protobuf.GeneratedMessage
          implements MilestoneNodeOrBuilder {
        // Use MilestoneNode.newBuilder() to construct.
        private MilestoneNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private MilestoneNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final MilestoneNode defaultInstance;
        public static MilestoneNode getDefaultInstance() {
          return defaultInstance;
        }

        public MilestoneNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private MilestoneNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.add(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder.class);
        }

        public static com.google.protobuf.Parser<MilestoneNode> PARSER =
            new com.google.protobuf.AbstractParser<MilestoneNode>() {
          public MilestoneNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new MilestoneNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<MilestoneNode> getParserForType() {
          return PARSER;
        }

        // repeated int64 timer_instance_id = 1;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        private java.util.List<java.lang.Long> timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          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;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          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 {
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode}
       */
      public static final class EventNode extends
          com.google.protobuf.GeneratedMessage
          implements EventNodeOrBuilder {
        // Use EventNode.newBuilder() to construct.
        private EventNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private EventNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final EventNode defaultInstance;
        public static EventNode getDefaultInstance() {
          return defaultInstance;
        }

        public EventNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private EventNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder.class);
        }

        public static com.google.protobuf.Parser<EventNode> PARSER =
            new com.google.protobuf.AbstractParser<EventNode>() {
          public EventNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EventNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<EventNode> getParserForType() {
          return PARSER;
        }

        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }

          // @@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;
        /**
         * <code>optional int64 timer_id = 1;</code>
         */
        boolean hasTimerId();
        /**
         * <code>optional int64 timer_id = 1;</code>
         */
        long getTimerId();
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode}
       */
      public static final class TimerNode extends
          com.google.protobuf.GeneratedMessage
          implements TimerNodeOrBuilder {
        // Use TimerNode.newBuilder() to construct.
        private TimerNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private TimerNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final TimerNode defaultInstance;
        public static TimerNode getDefaultInstance() {
          return defaultInstance;
        }

        public TimerNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private TimerNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  timerId_ = input.readInt64();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder.class);
        }

        public static com.google.protobuf.Parser<TimerNode> PARSER =
            new com.google.protobuf.AbstractParser<TimerNode>() {
          public TimerNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new TimerNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<TimerNode> getParserForType() {
          return PARSER;
        }

        private int bitField0_;
        // optional int64 timer_id = 1;
        public static final int TIMER_ID_FIELD_NUMBER = 1;
        private long timerId_;
        /**
         * <code>optional int64 timer_id = 1;</code>
         */
        public boolean hasTimerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int64 timer_id = 1;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          // optional int64 timer_id = 1;
          private long timerId_ ;
          /**
           * <code>optional int64 timer_id = 1;</code>
           */
          public boolean hasTimerId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <code>optional int64 timer_id = 1;</code>
           */
          public long getTimerId() {
            return timerId_;
          }
          /**
           * <code>optional int64 timer_id = 1;</code>
           */
          public Builder setTimerId(long value) {
            bitField0_ |= 0x00000001;
            timerId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 timer_id = 1;</code>
           */
          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;
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger> 
            getTriggerList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger getTrigger(int index);
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        int getTriggerCount();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder> 
            getTriggerOrBuilderList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder getTriggerOrBuilder(
            int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode}
       */
      public static final class JoinNode extends
          com.google.protobuf.GeneratedMessage
          implements JoinNodeOrBuilder {
        // Use JoinNode.newBuilder() to construct.
        private JoinNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private JoinNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final JoinNode defaultInstance;
        public static JoinNode getDefaultInstance() {
          return defaultInstance;
        }

        public JoinNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private JoinNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 10: {
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                    trigger_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  trigger_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.PARSER, extensionRegistry));
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
              trigger_ = java.util.Collections.unmodifiableList(trigger_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder.class);
        }

        public static com.google.protobuf.Parser<JoinNode> PARSER =
            new com.google.protobuf.AbstractParser<JoinNode>() {
          public JoinNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new JoinNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<JoinNode> getParserForType() {
          return PARSER;
        }

        public interface JoinTriggerOrBuilder
            extends com.google.protobuf.MessageOrBuilder {

          // optional int64 node_id = 1;
          /**
           * <code>optional int64 node_id = 1;</code>
           */
          boolean hasNodeId();
          /**
           * <code>optional int64 node_id = 1;</code>
           */
          long getNodeId();

          // optional int32 counter = 2;
          /**
           * <code>optional int32 counter = 2;</code>
           */
          boolean hasCounter();
          /**
           * <code>optional int32 counter = 2;</code>
           */
          int getCounter();
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger}
         */
        public static final class JoinTrigger extends
            com.google.protobuf.GeneratedMessage
            implements JoinTriggerOrBuilder {
          // Use JoinTrigger.newBuilder() to construct.
          private JoinTrigger(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
            super(builder);
            this.unknownFields = builder.getUnknownFields();
          }
          private JoinTrigger(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

          private static final JoinTrigger defaultInstance;
          public static JoinTrigger getDefaultInstance() {
            return defaultInstance;
          }

          public JoinTrigger getDefaultInstanceForType() {
            return defaultInstance;
          }

          private final com.google.protobuf.UnknownFieldSet unknownFields;
          @java.lang.Override
          public final com.google.protobuf.UnknownFieldSet
              getUnknownFields() {
            return this.unknownFields;
          }
          private JoinTrigger(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            initFields();
            int mutable_bitField0_ = 0;
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder();
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownField(input, unknownFields,
                                           extensionRegistry, tag)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    bitField0_ |= 0x00000001;
                    nodeId_ = input.readInt64();
                    break;
                  }
                  case 16: {
                    bitField0_ |= 0x00000002;
                    counter_ = input.readInt32();
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(
                  e.getMessage()).setUnfinishedMessage(this);
            } finally {
              this.unknownFields = unknownFields.build();
              makeExtensionsImmutable();
            }
          }
          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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder.class);
          }

          public static com.google.protobuf.Parser<JoinTrigger> PARSER =
              new com.google.protobuf.AbstractParser<JoinTrigger>() {
            public JoinTrigger parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
              return new JoinTrigger(input, extensionRegistry);
            }
          };

          @java.lang.Override
          public com.google.protobuf.Parser<JoinTrigger> getParserForType() {
            return PARSER;
          }

          private int bitField0_;
          // optional int64 node_id = 1;
          public static final int NODE_ID_FIELD_NUMBER = 1;
          private long nodeId_;
          /**
           * <code>optional int64 node_id = 1;</code>
           */
          public boolean hasNodeId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <code>optional int64 node_id = 1;</code>
           */
          public long getNodeId() {
            return nodeId_;
          }

          // optional int32 counter = 2;
          public static final int COUNTER_FIELD_NUMBER = 2;
          private int counter_;
          /**
           * <code>optional int32 counter = 2;</code>
           */
          public boolean hasCounter() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * <code>optional int32 counter = 2;</code>
           */
          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;
          }

          private static final long serialVersionUID = 0L;
          @java.lang.Override
          protected java.lang.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 PARSER.parseFrom(data);
          }
          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 PARSER.parseFrom(data, extensionRegistry);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(byte[] data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          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 PARSER.parseFrom(data, extensionRegistry);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(java.io.InputStream input)
              throws java.io.IOException {
            return PARSER.parseFrom(input);
          }
          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 PARSER.parseFrom(input, extensionRegistry);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
            return PARSER.parseDelimitedFrom(input);
          }
          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 {
            return PARSER.parseDelimitedFrom(input, extensionRegistry);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
            return PARSER.parseFrom(input);
          }
          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 PARSER.parseFrom(input, extensionRegistry);
          }

          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;
          }
          /**
           * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger}
           */
          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
                  .ensureFieldAccessorsInitialized(
                      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder.class);
            }

            // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.newBuilder()
            private Builder() {
              maybeForceBuilderInitialization();
            }

            private Builder(
                com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_descriptor;
            }

            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;
            }

            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 {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parsedMessage = null;
              try {
                parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger) e.getUnfinishedMessage();
                throw e;
              } finally {
                if (parsedMessage != null) {
                  mergeFrom(parsedMessage);
                }
              }
              return this;
            }
            private int bitField0_;

            // optional int64 node_id = 1;
            private long nodeId_ ;
            /**
             * <code>optional int64 node_id = 1;</code>
             */
            public boolean hasNodeId() {
              return ((bitField0_ & 0x00000001) == 0x00000001);
            }
            /**
             * <code>optional int64 node_id = 1;</code>
             */
            public long getNodeId() {
              return nodeId_;
            }
            /**
             * <code>optional int64 node_id = 1;</code>
             */
            public Builder setNodeId(long value) {
              bitField0_ |= 0x00000001;
              nodeId_ = value;
              onChanged();
              return this;
            }
            /**
             * <code>optional int64 node_id = 1;</code>
             */
            public Builder clearNodeId() {
              bitField0_ = (bitField0_ & ~0x00000001);
              nodeId_ = 0L;
              onChanged();
              return this;
            }

            // optional int32 counter = 2;
            private int counter_ ;
            /**
             * <code>optional int32 counter = 2;</code>
             */
            public boolean hasCounter() {
              return ((bitField0_ & 0x00000002) == 0x00000002);
            }
            /**
             * <code>optional int32 counter = 2;</code>
             */
            public int getCounter() {
              return counter_;
            }
            /**
             * <code>optional int32 counter = 2;</code>
             */
            public Builder setCounter(int value) {
              bitField0_ |= 0x00000002;
              counter_ = value;
              onChanged();
              return this;
            }
            /**
             * <code>optional int32 counter = 2;</code>
             */
            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_;
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger> getTriggerList() {
          return trigger_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder> 
            getTriggerOrBuilderList() {
          return trigger_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        public int getTriggerCount() {
          return trigger_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger getTrigger(int index) {
          return trigger_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          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_;

          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          public int getTriggerCount() {
            if (triggerBuilder_ == null) {
              return trigger_.size();
            } else {
              return triggerBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          public Builder clearTrigger() {
            if (triggerBuilder_ == null) {
              trigger_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
              onChanged();
            } else {
              triggerBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          public Builder removeTrigger(int index) {
            if (triggerBuilder_ == null) {
              ensureTriggerIsMutable();
              trigger_.remove(index);
              onChanged();
            } else {
              triggerBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.Builder getTriggerBuilder(
              int index) {
            return getTriggerFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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_);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
           */
          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;
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode}
       */
      public static final class StateNode extends
          com.google.protobuf.GeneratedMessage
          implements StateNodeOrBuilder {
        // Use StateNode.newBuilder() to construct.
        private StateNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private StateNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final StateNode defaultInstance;
        public static StateNode getDefaultInstance() {
          return defaultInstance;
        }

        public StateNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private StateNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.add(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder.class);
        }

        public static com.google.protobuf.Parser<StateNode> PARSER =
            new com.google.protobuf.AbstractParser<StateNode>() {
          public StateNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new StateNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<StateNode> getParserForType() {
          return PARSER;
        }

        // repeated int64 timer_instance_id = 1;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        private java.util.List<java.lang.Long> timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          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;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           */
          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;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        long getTimerInstanceId(int index);

        // repeated .org.jbpm.marshalling.Variable variable = 3;
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> 
            getVariableList();
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index);
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        int getVariableCount();
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
            getVariableOrBuilderList();
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
            int index);

        // repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> 
            getNodeInstanceList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index);
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        int getNodeInstanceCount();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
            getNodeInstanceOrBuilderList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
            int index);

        // repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> 
            getExclusiveGroupList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index);
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        int getExclusiveGroupCount();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
            getExclusiveGroupOrBuilderList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
            int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode}
       */
      public static final class CompositeContextNode extends
          com.google.protobuf.GeneratedMessage
          implements CompositeContextNodeOrBuilder {
        // Use CompositeContextNode.newBuilder() to construct.
        private CompositeContextNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private CompositeContextNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final CompositeContextNode defaultInstance;
        public static CompositeContextNode getDefaultInstance() {
          return defaultInstance;
        }

        public CompositeContextNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private CompositeContextNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 16: {
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  timerInstanceId_.add(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = new java.util.ArrayList<java.lang.Long>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.add(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 26: {
                  if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                    variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  variable_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.Variable.PARSER, extensionRegistry));
                  break;
                }
                case 34: {
                  if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                    nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>();
                    mutable_bitField0_ |= 0x00000004;
                  }
                  nodeInstance_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.PARSER, extensionRegistry));
                  break;
                }
                case 42: {
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                    exclusiveGroup_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  exclusiveGroup_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.PARSER, extensionRegistry));
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
              timerInstanceId_ = java.util.Collections.unmodifiableList(timerInstanceId_);
            }
            if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
              variable_ = java.util.Collections.unmodifiableList(variable_);
            }
            if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
              nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
            }
            if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
              exclusiveGroup_ = java.util.Collections.unmodifiableList(exclusiveGroup_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder.class);
        }

        public static com.google.protobuf.Parser<CompositeContextNode> PARSER =
            new com.google.protobuf.AbstractParser<CompositeContextNode>() {
          public CompositeContextNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new CompositeContextNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<CompositeContextNode> getParserForType() {
          return PARSER;
        }

        // repeated int64 timer_instance_id = 2;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        private java.util.List<java.lang.Long> timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         */
        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_;
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
          return variable_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
            getVariableOrBuilderList() {
          return variable_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        public int getVariableCount() {
          return variable_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
          return variable_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        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_;
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> getNodeInstanceList() {
          return nodeInstance_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
            getNodeInstanceOrBuilderList() {
          return nodeInstance_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        public int getNodeInstanceCount() {
          return nodeInstance_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
          return nodeInstance_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        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_;
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> getExclusiveGroupList() {
          return exclusiveGroup_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
            getExclusiveGroupOrBuilderList() {
          return exclusiveGroup_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        public int getExclusiveGroupCount() {
          return exclusiveGroup_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index) {
          return exclusiveGroup_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          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;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return java.util.Collections.unmodifiableList(timerInstanceId_);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.add(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            super.addAll(values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           */
          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_;

          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
            if (variableBuilder_ == null) {
              return java.util.Collections.unmodifiableList(variable_);
            } else {
              return variableBuilder_.getMessageList();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          public int getVariableCount() {
            if (variableBuilder_ == null) {
              return variable_.size();
            } else {
              return variableBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
            if (variableBuilder_ == null) {
              return variable_.get(index);
            } else {
              return variableBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          public Builder clearVariable() {
            if (variableBuilder_ == null) {
              variable_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
              onChanged();
            } else {
              variableBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          public Builder removeVariable(int index) {
            if (variableBuilder_ == null) {
              ensureVariableIsMutable();
              variable_.remove(index);
              onChanged();
            } else {
              variableBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder getVariableBuilder(
              int index) {
            return getVariableFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
              int index) {
            if (variableBuilder_ == null) {
              return variable_.get(index);  } else {
              return variableBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          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_);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder() {
            return getVariableFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder(
              int index) {
            return getVariableFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
           */
          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_;

          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          public int getNodeInstanceCount() {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.size();
            } else {
              return nodeInstanceBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.get(index);
            } else {
              return nodeInstanceBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          public Builder clearNodeInstance() {
            if (nodeInstanceBuilder_ == null) {
              nodeInstance_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000004);
              onChanged();
            } else {
              nodeInstanceBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          public Builder removeNodeInstance(int index) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.remove(index);
              onChanged();
            } else {
              nodeInstanceBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder getNodeInstanceBuilder(
              int index) {
            return getNodeInstanceFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
              int index) {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.get(index);  } else {
              return nodeInstanceBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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_);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder() {
            return getNodeInstanceFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder(
              int index) {
            return getNodeInstanceFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
           */
          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_;

          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          public int getExclusiveGroupCount() {
            if (exclusiveGroupBuilder_ == null) {
              return exclusiveGroup_.size();
            } else {
              return exclusiveGroupBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index) {
            if (exclusiveGroupBuilder_ == null) {
              return exclusiveGroup_.get(index);
            } else {
              return exclusiveGroupBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          public Builder clearExclusiveGroup() {
            if (exclusiveGroupBuilder_ == null) {
              exclusiveGroup_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000008);
              onChanged();
            } else {
              exclusiveGroupBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          public Builder removeExclusiveGroup(int index) {
            if (exclusiveGroupBuilder_ == null) {
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.remove(index);
              onChanged();
            } else {
              exclusiveGroupBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder getExclusiveGroupBuilder(
              int index) {
            return getExclusiveGroupFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
              int index) {
            if (exclusiveGroupBuilder_ == null) {
              return exclusiveGroup_.get(index);  } else {
              return exclusiveGroupBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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_);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder addExclusiveGroupBuilder() {
            return getExclusiveGroupFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder addExclusiveGroupBuilder(
              int index) {
            return getExclusiveGroupFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
           */
          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;
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> 
            getNodeInstanceList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index);
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        int getNodeInstanceCount();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
            getNodeInstanceOrBuilderList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
            int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode}
       */
      public static final class ForEachNode extends
          com.google.protobuf.GeneratedMessage
          implements ForEachNodeOrBuilder {
        // Use ForEachNode.newBuilder() to construct.
        private ForEachNode(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private ForEachNode(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final ForEachNode defaultInstance;
        public static ForEachNode getDefaultInstance() {
          return defaultInstance;
        }

        public ForEachNode getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private ForEachNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 10: {
                  if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                    nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  nodeInstance_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.PARSER, extensionRegistry));
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
              nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder.class);
        }

        public static com.google.protobuf.Parser<ForEachNode> PARSER =
            new com.google.protobuf.AbstractParser<ForEachNode>() {
          public ForEachNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ForEachNode(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser<ForEachNode> getParserForType() {
          return PARSER;
        }

        // 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_;
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> getNodeInstanceList() {
          return nodeInstance_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
            getNodeInstanceOrBuilderList() {
          return nodeInstance_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        public int getNodeInstanceCount() {
          return nodeInstance_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
          return nodeInstance_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        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;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.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 PARSER.parseFrom(data);
        }
        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 PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        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 PARSER.parseFrom(input, extensionRegistry);
        }

        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;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode}
         */
        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
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder.class);
          }

          // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_descriptor;
          }

          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;
          }

          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 {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          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_;

          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          public int getNodeInstanceCount() {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.size();
            } else {
              return nodeInstanceBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.get(index);
            } else {
              return nodeInstanceBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          public Builder clearNodeInstance() {
            if (nodeInstanceBuilder_ == null) {
              nodeInstance_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
              onChanged();
            } else {
              nodeInstanceBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          public Builder removeNodeInstance(int index) {
            if (nodeInstanceBuilder_ == null) {
              ensureNodeInstanceIsMutable();
              nodeInstance_.remove(index);
              onChanged();
            } else {
              nodeInstanceBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder getNodeInstanceBuilder(
              int index) {
            return getNodeInstanceFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
              int index) {
            if (nodeInstanceBuilder_ == null) {
              return nodeInstance_.get(index);  } else {
              return nodeInstanceBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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_);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder() {
            return getNodeInstanceFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder(
              int index) {
            return getNodeInstanceFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
           */
          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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       */
      public boolean hasRuleSet() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getRuleSet() {
        return ruleSet_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       */
      public boolean hasHumanTask() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getHumanTask() {
        return humanTask_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       */
      public boolean hasWorkItem() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getWorkItem() {
        return workItem_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       */
      public boolean hasSubProcess() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getSubProcess() {
        return subProcess_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       */
      public boolean hasMilestone() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getMilestone() {
        return milestone_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       */
      public boolean hasEvent() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getEvent() {
        return event_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       */
      public boolean hasTimer() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getTimer() {
        return timer_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       */
      public boolean hasJoin() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getJoin() {
        return join_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       */
      public boolean hasState() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getState() {
        return state_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       */
      public boolean hasComposite() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getComposite() {
        return composite_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       */
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       */
      public boolean hasForEach() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getForEach() {
        return forEach_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       */
      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;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.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 PARSER.parseFrom(data);
      }
      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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      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 PARSER.parseFrom(input, extensionRegistry);
      }

      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;
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent}
       */
      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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder.class);
        }

        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor;
        }

        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;
        }

        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 {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        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;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
         */
        public boolean hasType() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType getType() {
          return type_;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
         */
        public Builder setType(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          type_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        public boolean hasRuleSet() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getRuleSet() {
          if (ruleSetBuilder_ == null) {
            return ruleSet_;
          } else {
            return ruleSetBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder getRuleSetBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getRuleSetFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder getRuleSetOrBuilder() {
          if (ruleSetBuilder_ != null) {
            return ruleSetBuilder_.getMessageOrBuilder();
          } else {
            return ruleSet_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        public boolean hasHumanTask() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getHumanTask() {
          if (humanTaskBuilder_ == null) {
            return humanTask_;
          } else {
            return humanTaskBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.Builder getHumanTaskBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getHumanTaskFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder getHumanTaskOrBuilder() {
          if (humanTaskBuilder_ != null) {
            return humanTaskBuilder_.getMessageOrBuilder();
          } else {
            return humanTask_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        public boolean hasWorkItem() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getWorkItem() {
          if (workItemBuilder_ == null) {
            return workItem_;
          } else {
            return workItemBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.Builder getWorkItemBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getWorkItemFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder getWorkItemOrBuilder() {
          if (workItemBuilder_ != null) {
            return workItemBuilder_.getMessageOrBuilder();
          } else {
            return workItem_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        public boolean hasSubProcess() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getSubProcess() {
          if (subProcessBuilder_ == null) {
            return subProcess_;
          } else {
            return subProcessBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.Builder getSubProcessBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getSubProcessFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder getSubProcessOrBuilder() {
          if (subProcessBuilder_ != null) {
            return subProcessBuilder_.getMessageOrBuilder();
          } else {
            return subProcess_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        public boolean hasMilestone() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getMilestone() {
          if (milestoneBuilder_ == null) {
            return milestone_;
          } else {
            return milestoneBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.Builder getMilestoneBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getMilestoneFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder getMilestoneOrBuilder() {
          if (milestoneBuilder_ != null) {
            return milestoneBuilder_.getMessageOrBuilder();
          } else {
            return milestone_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        public boolean hasEvent() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getEvent() {
          if (eventBuilder_ == null) {
            return event_;
          } else {
            return eventBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.Builder getEventBuilder() {
          bitField0_ |= 0x00000040;
          onChanged();
          return getEventFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder getEventOrBuilder() {
          if (eventBuilder_ != null) {
            return eventBuilder_.getMessageOrBuilder();
          } else {
            return event_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        public boolean hasTimer() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getTimer() {
          if (timerBuilder_ == null) {
            return timer_;
          } else {
            return timerBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.Builder getTimerBuilder() {
          bitField0_ |= 0x00000080;
          onChanged();
          return getTimerFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder getTimerOrBuilder() {
          if (timerBuilder_ != null) {
            return timerBuilder_.getMessageOrBuilder();
          } else {
            return timer_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        public boolean hasJoin() {
          return ((bitField0_ & 0x00000100) == 0x00000100);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getJoin() {
          if (joinBuilder_ == null) {
            return join_;
          } else {
            return joinBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.Builder getJoinBuilder() {
          bitField0_ |= 0x00000100;
          onChanged();
          return getJoinFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder getJoinOrBuilder() {
          if (joinBuilder_ != null) {
            return joinBuilder_.getMessageOrBuilder();
          } else {
            return join_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        public boolean hasState() {
          return ((bitField0_ & 0x00000200) == 0x00000200);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getState() {
          if (stateBuilder_ == null) {
            return state_;
          } else {
            return stateBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.Builder getStateBuilder() {
          bitField0_ |= 0x00000200;
          onChanged();
          return getStateFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder getStateOrBuilder() {
          if (stateBuilder_ != null) {
            return stateBuilder_.getMessageOrBuilder();
          } else {
            return state_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        public boolean hasComposite() {
          return ((bitField0_ & 0x00000400) == 0x00000400);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getComposite() {
          if (compositeBuilder_ == null) {
            return composite_;
          } else {
            return compositeBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.Builder getCompositeBuilder() {
          bitField0_ |= 0x00000400;
          onChanged();
          return getCompositeFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder getCompositeOrBuilder() {
          if (compositeBuilder_ != null) {
            return compositeBuilder_.getMessageOrBuilder();
          } else {
            return composite_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        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_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        public boolean hasForEach() {
          return ((bitField0_ & 0x00000800) == 0x00000800);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getForEach() {
          if (forEachBuilder_ == null) {
            return forEach_;
          } else {
            return forEachBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        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;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.Builder getForEachBuilder() {
          bitField0_ |= 0x00000800;
          onChanged();
          return getForEachFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder getForEachOrBuilder() {
          if (forEachBuilder_ != null) {
            return forEachBuilder_.getMessageOrBuilder();
          } else {
            return forEach_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        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 java.lang.Object processType_;
    /**
     * <code>optional string process_type = 1;</code>
     */
    public boolean hasProcessType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string process_type = 1;</code>
     */
    public java.lang.String getProcessType() {
      java.lang.Object ref = processType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          processType_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string process_type = 1;</code>
     */
    public com.google.protobuf.ByteString
        getProcessTypeBytes() {
      java.lang.Object ref = processType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.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_;
    /**
     * <code>optional int64 id = 2;</code>
     */
    public boolean hasId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional int64 id = 2;</code>
     */
    public long getId() {
      return id_;
    }

    // optional string process_id = 3;
    public static final int PROCESS_ID_FIELD_NUMBER = 3;
    private java.lang.Object processId_;
    /**
     * <code>optional string process_id = 3;</code>
     */
    public boolean hasProcessId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string process_id = 3;</code>
     */
    public java.lang.String getProcessId() {
      java.lang.Object ref = processId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          processId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string process_id = 3;</code>
     */
    public com.google.protobuf.ByteString
        getProcessIdBytes() {
      java.lang.Object ref = processId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.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_;
    /**
     * <code>optional int32 state = 4;</code>
     */
    public boolean hasState() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional int32 state = 4;</code>
     */
    public int getState() {
      return state_;
    }

    // optional int64 node_instance_counter = 5;
    public static final int NODE_INSTANCE_COUNTER_FIELD_NUMBER = 5;
    private long nodeInstanceCounter_;
    /**
     * <code>optional int64 node_instance_counter = 5;</code>
     */
    public boolean hasNodeInstanceCounter() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional int64 node_instance_counter = 5;</code>
     */
    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_;
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance> getSwimlaneContextList() {
      return swimlaneContext_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder> 
        getSwimlaneContextOrBuilderList() {
      return swimlaneContext_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    public int getSwimlaneContextCount() {
      return swimlaneContext_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getSwimlaneContext(int index) {
      return swimlaneContext_.get(index);
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    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_;
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> getNodeInstanceList() {
      return nodeInstance_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder> 
        getNodeInstanceOrBuilderList() {
      return nodeInstance_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    public int getNodeInstanceCount() {
      return nodeInstance_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
      return nodeInstance_.get(index);
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    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_;
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    public int getVariableCount() {
      return variable_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
      return variable_.get(index);
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    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_;
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> getExclusiveGroupList() {
      return exclusiveGroup_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder> 
        getExclusiveGroupOrBuilderList() {
      return exclusiveGroup_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    public int getExclusiveGroupCount() {
      return exclusiveGroup_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index) {
      return exclusiveGroup_.get(index);
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    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;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.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 PARSER.parseFrom(data);
    }
    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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    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;
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessInstance}
     */
    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
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.Builder.class);
      }

      // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessInstance_descriptor;
      }

      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;
      }

      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()) {
          bitField0_ |= 0x00000001;
          processType_ = other.processType_;
          onChanged();
        }
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasProcessId()) {
          bitField0_ |= 0x00000004;
          processId_ = other.processId_;
          onChanged();
        }
        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 {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string process_type = 1;
      private java.lang.Object processType_ = "";
      /**
       * <code>optional string process_type = 1;</code>
       */
      public boolean hasProcessType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string process_type = 1;</code>
       */
      public java.lang.String getProcessType() {
        java.lang.Object ref = processType_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          processType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string process_type = 1;</code>
       */
      public com.google.protobuf.ByteString
          getProcessTypeBytes() {
        java.lang.Object ref = processType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          processType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string process_type = 1;</code>
       */
      public Builder setProcessType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        processType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string process_type = 1;</code>
       */
      public Builder clearProcessType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        processType_ = getDefaultInstance().getProcessType();
        onChanged();
        return this;
      }
      /**
       * <code>optional string process_type = 1;</code>
       */
      public Builder setProcessTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        processType_ = value;
        onChanged();
        return this;
      }

      // optional int64 id = 2;
      private long id_ ;
      /**
       * <code>optional int64 id = 2;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int64 id = 2;</code>
       */
      public long getId() {
        return id_;
      }
      /**
       * <code>optional int64 id = 2;</code>
       */
      public Builder setId(long value) {
        bitField0_ |= 0x00000002;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 id = 2;</code>
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        id_ = 0L;
        onChanged();
        return this;
      }

      // optional string process_id = 3;
      private java.lang.Object processId_ = "";
      /**
       * <code>optional string process_id = 3;</code>
       */
      public boolean hasProcessId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string process_id = 3;</code>
       */
      public java.lang.String getProcessId() {
        java.lang.Object ref = processId_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          processId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string process_id = 3;</code>
       */
      public com.google.protobuf.ByteString
          getProcessIdBytes() {
        java.lang.Object ref = processId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          processId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string process_id = 3;</code>
       */
      public Builder setProcessId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        processId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string process_id = 3;</code>
       */
      public Builder clearProcessId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        processId_ = getDefaultInstance().getProcessId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string process_id = 3;</code>
       */
      public Builder setProcessIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        processId_ = value;
        onChanged();
        return this;
      }

      // optional int32 state = 4;
      private int state_ ;
      /**
       * <code>optional int32 state = 4;</code>
       */
      public boolean hasState() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int32 state = 4;</code>
       */
      public int getState() {
        return state_;
      }
      /**
       * <code>optional int32 state = 4;</code>
       */
      public Builder setState(int value) {
        bitField0_ |= 0x00000008;
        state_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 state = 4;</code>
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000008);
        state_ = 0;
        onChanged();
        return this;
      }

      // optional int64 node_instance_counter = 5;
      private long nodeInstanceCounter_ ;
      /**
       * <code>optional int64 node_instance_counter = 5;</code>
       */
      public boolean hasNodeInstanceCounter() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional int64 node_instance_counter = 5;</code>
       */
      public long getNodeInstanceCounter() {
        return nodeInstanceCounter_;
      }
      /**
       * <code>optional int64 node_instance_counter = 5;</code>
       */
      public Builder setNodeInstanceCounter(long value) {
        bitField0_ |= 0x00000010;
        nodeInstanceCounter_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 node_instance_counter = 5;</code>
       */
      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_;

      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      public int getSwimlaneContextCount() {
        if (swimlaneContextBuilder_ == null) {
          return swimlaneContext_.size();
        } else {
          return swimlaneContextBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getSwimlaneContext(int index) {
        if (swimlaneContextBuilder_ == null) {
          return swimlaneContext_.get(index);
        } else {
          return swimlaneContextBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      public Builder clearSwimlaneContext() {
        if (swimlaneContextBuilder_ == null) {
          swimlaneContext_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          swimlaneContextBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      public Builder removeSwimlaneContext(int index) {
        if (swimlaneContextBuilder_ == null) {
          ensureSwimlaneContextIsMutable();
          swimlaneContext_.remove(index);
          onChanged();
        } else {
          swimlaneContextBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder getSwimlaneContextBuilder(
          int index) {
        return getSwimlaneContextFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder getSwimlaneContextOrBuilder(
          int index) {
        if (swimlaneContextBuilder_ == null) {
          return swimlaneContext_.get(index);  } else {
          return swimlaneContextBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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_);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder addSwimlaneContextBuilder() {
        return getSwimlaneContextFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder addSwimlaneContextBuilder(
          int index) {
        return getSwimlaneContextFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
       */
      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_;

      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      public int getNodeInstanceCount() {
        if (nodeInstanceBuilder_ == null) {
          return nodeInstance_.size();
        } else {
          return nodeInstanceBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getNodeInstance(int index) {
        if (nodeInstanceBuilder_ == null) {
          return nodeInstance_.get(index);
        } else {
          return nodeInstanceBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      public Builder clearNodeInstance() {
        if (nodeInstanceBuilder_ == null) {
          nodeInstance_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          nodeInstanceBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      public Builder removeNodeInstance(int index) {
        if (nodeInstanceBuilder_ == null) {
          ensureNodeInstanceIsMutable();
          nodeInstance_.remove(index);
          onChanged();
        } else {
          nodeInstanceBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder getNodeInstanceBuilder(
          int index) {
        return getNodeInstanceFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
          int index) {
        if (nodeInstanceBuilder_ == null) {
          return nodeInstance_.get(index);  } else {
          return nodeInstanceBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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_);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder() {
        return getNodeInstanceFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder addNodeInstanceBuilder(
          int index) {
        return getNodeInstanceFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
       */
      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_;

      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
        if (variableBuilder_ == null) {
          return java.util.Collections.unmodifiableList(variable_);
        } else {
          return variableBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      public int getVariableCount() {
        if (variableBuilder_ == null) {
          return variable_.size();
        } else {
          return variableBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
        if (variableBuilder_ == null) {
          return variable_.get(index);
        } else {
          return variableBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      public Builder clearVariable() {
        if (variableBuilder_ == null) {
          variable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          variableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      public Builder removeVariable(int index) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.remove(index);
          onChanged();
        } else {
          variableBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder getVariableBuilder(
          int index) {
        return getVariableFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
          int index) {
        if (variableBuilder_ == null) {
          return variable_.get(index);  } else {
          return variableBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      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_);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder() {
        return getVariableFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder(
          int index) {
        return getVariableFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
       */
      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_;

      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      public int getExclusiveGroupCount() {
        if (exclusiveGroupBuilder_ == null) {
          return exclusiveGroup_.size();
        } else {
          return exclusiveGroupBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getExclusiveGroup(int index) {
        if (exclusiveGroupBuilder_ == null) {
          return exclusiveGroup_.get(index);
        } else {
          return exclusiveGroupBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      public Builder clearExclusiveGroup() {
        if (exclusiveGroupBuilder_ == null) {
          exclusiveGroup_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
        } else {
          exclusiveGroupBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      public Builder removeExclusiveGroup(int index) {
        if (exclusiveGroupBuilder_ == null) {
          ensureExclusiveGroupIsMutable();
          exclusiveGroup_.remove(index);
          onChanged();
        } else {
          exclusiveGroupBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder getExclusiveGroupBuilder(
          int index) {
        return getExclusiveGroupFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
          int index) {
        if (exclusiveGroupBuilder_ == null) {
          return exclusiveGroup_.get(index);  } else {
          return exclusiveGroupBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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_);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder addExclusiveGroupBuilder() {
        return getExclusiveGroupFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder addExclusiveGroupBuilder(
          int index) {
        return getExclusiveGroupFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
       */
      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;
    /**
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    // optional int32 strategy_index = 2;
    /**
     * <code>optional int32 strategy_index = 2;</code>
     *
     * <pre>
     * the actual object reference
     * </pre>
     */
    boolean hasStrategyIndex();
    /**
     * <code>optional int32 strategy_index = 2;</code>
     *
     * <pre>
     * the actual object reference
     * </pre>
     */
    int getStrategyIndex();

    // optional bytes value = 3;
    /**
     * <code>optional bytes value = 3;</code>
     */
    boolean hasValue();
    /**
     * <code>optional bytes value = 3;</code>
     */
    com.google.protobuf.ByteString getValue();
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.Variable}
   */
  public static final class Variable extends
      com.google.protobuf.GeneratedMessage
      implements VariableOrBuilder {
    // Use Variable.newBuilder() to construct.
    private Variable(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Variable(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Variable defaultInstance;
    public static Variable getDefaultInstance() {
      return defaultInstance;
    }

    public Variable getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Variable(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              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;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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
          .ensureFieldAccessorsInitialized(
              org.jbpm.marshalling.impl.JBPMMessages.Variable.class, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder.class);
    }

    public static com.google.protobuf.Parser<Variable> PARSER =
        new com.google.protobuf.AbstractParser<Variable>() {
      public Variable parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Variable(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<Variable> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string name = 1;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.Object name_;
    /**
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.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_;
    /**
     * <code>optional int32 strategy_index = 2;</code>
     *
     * <pre>
     * the actual object reference
     * </pre>
     */
    public boolean hasStrategyIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional int32 strategy_index = 2;</code>
     *
     * <pre>
     * the actual object reference
     * </pre>
     */
    public int getStrategyIndex() {
      return strategyIndex_;
    }

    // optional bytes value = 3;
    public static final int VALUE_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString value_;
    /**
     * <code>optional bytes value = 3;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes value = 3;</code>
     */
    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;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.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 PARSER.parseFrom(data);
    }
    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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    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;
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.Variable}
     */
    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
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.Variable.class, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder.class);
      }

      // Construct using org.jbpm.marshalling.impl.JBPMMessages.Variable.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_Variable_descriptor;
      }

      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;
      }

      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()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        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 {
        org.jbpm.marshalling.impl.JBPMMessages.Variable parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.Variable) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string name = 1;
      private java.lang.Object name_ = "";
      /**
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string name = 1;</code>
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      // optional int32 strategy_index = 2;
      private int strategyIndex_ ;
      /**
       * <code>optional int32 strategy_index = 2;</code>
       *
       * <pre>
       * the actual object reference
       * </pre>
       */
      public boolean hasStrategyIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int32 strategy_index = 2;</code>
       *
       * <pre>
       * the actual object reference
       * </pre>
       */
      public int getStrategyIndex() {
        return strategyIndex_;
      }
      /**
       * <code>optional int32 strategy_index = 2;</code>
       *
       * <pre>
       * the actual object reference
       * </pre>
       */
      public Builder setStrategyIndex(int value) {
        bitField0_ |= 0x00000002;
        strategyIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 strategy_index = 2;</code>
       *
       * <pre>
       * the actual object reference
       * </pre>
       */
      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;
      /**
       * <code>optional bytes value = 3;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes value = 3;</code>
       */
      public com.google.protobuf.ByteString getValue() {
        return value_;
      }
      /**
       * <code>optional bytes value = 3;</code>
       */
      public Builder setValue(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes value = 3;</code>
       */
      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;
    /**
     * <code>optional int64 id = 1;</code>
     */
    boolean hasId();
    /**
     * <code>optional int64 id = 1;</code>
     */
    long getId();

    // optional int64 process_instances_id = 2;
    /**
     * <code>optional int64 process_instances_id = 2;</code>
     */
    boolean hasProcessInstancesId();
    /**
     * <code>optional int64 process_instances_id = 2;</code>
     */
    long getProcessInstancesId();

    // optional string name = 3;
    /**
     * <code>optional string name = 3;</code>
     */
    boolean hasName();
    /**
     * <code>optional string name = 3;</code>
     */
    java.lang.String getName();
    /**
     * <code>optional string name = 3;</code>
     */
    com.google.protobuf.ByteString
        getNameBytes();

    // optional int32 state = 4;
    /**
     * <code>optional int32 state = 4;</code>
     */
    boolean hasState();
    /**
     * <code>optional int32 state = 4;</code>
     */
    int getState();

    // repeated .org.jbpm.marshalling.Variable variable = 5;
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> 
        getVariableList();
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index);
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    int getVariableCount();
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList();
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.WorkItem}
   */
  public static final class WorkItem extends
      com.google.protobuf.GeneratedMessage
      implements WorkItemOrBuilder {
    // Use WorkItem.newBuilder() to construct.
    private WorkItem(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private WorkItem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final WorkItem defaultInstance;
    public static WorkItem getDefaultInstance() {
      return defaultInstance;
    }

    public WorkItem getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private WorkItem(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              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: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>();
                mutable_bitField0_ |= 0x00000010;
              }
              variable_.add(input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.Variable.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          variable_ = java.util.Collections.unmodifiableList(variable_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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
          .ensureFieldAccessorsInitialized(
              org.jbpm.marshalling.impl.JBPMMessages.WorkItem.class, org.jbpm.marshalling.impl.JBPMMessages.WorkItem.Builder.class);
    }

    public static com.google.protobuf.Parser<WorkItem> PARSER =
        new com.google.protobuf.AbstractParser<WorkItem>() {
      public WorkItem parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new WorkItem(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<WorkItem> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int64 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * <code>optional int64 id = 1;</code>
     */
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int64 id = 1;</code>
     */
    public long getId() {
      return id_;
    }

    // optional int64 process_instances_id = 2;
    public static final int PROCESS_INSTANCES_ID_FIELD_NUMBER = 2;
    private long processInstancesId_;
    /**
     * <code>optional int64 process_instances_id = 2;</code>
     */
    public boolean hasProcessInstancesId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional int64 process_instances_id = 2;</code>
     */
    public long getProcessInstancesId() {
      return processInstancesId_;
    }

    // optional string name = 3;
    public static final int NAME_FIELD_NUMBER = 3;
    private java.lang.Object name_;
    /**
     * <code>optional string name = 3;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string name = 3;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string name = 3;</code>
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.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_;
    /**
     * <code>optional int32 state = 4;</code>
     */
    public boolean hasState() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional int32 state = 4;</code>
     */
    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_;
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    public int getVariableCount() {
      return variable_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
      return variable_.get(index);
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    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;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.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 PARSER.parseFrom(data);
    }
    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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    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;
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.WorkItem}
     */
    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
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.WorkItem.class, org.jbpm.marshalling.impl.JBPMMessages.WorkItem.Builder.class);
      }

      // Construct using org.jbpm.marshalling.impl.JBPMMessages.WorkItem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_WorkItem_descriptor;
      }

      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;
      }

      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()) {
          bitField0_ |= 0x00000004;
          name_ = other.name_;
          onChanged();
        }
        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 {
        org.jbpm.marshalling.impl.JBPMMessages.WorkItem parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.WorkItem) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int64 id = 1;
      private long id_ ;
      /**
       * <code>optional int64 id = 1;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int64 id = 1;</code>
       */
      public long getId() {
        return id_;
      }
      /**
       * <code>optional int64 id = 1;</code>
       */
      public Builder setId(long value) {
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 id = 1;</code>
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

      // optional int64 process_instances_id = 2;
      private long processInstancesId_ ;
      /**
       * <code>optional int64 process_instances_id = 2;</code>
       */
      public boolean hasProcessInstancesId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int64 process_instances_id = 2;</code>
       */
      public long getProcessInstancesId() {
        return processInstancesId_;
      }
      /**
       * <code>optional int64 process_instances_id = 2;</code>
       */
      public Builder setProcessInstancesId(long value) {
        bitField0_ |= 0x00000002;
        processInstancesId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 process_instances_id = 2;</code>
       */
      public Builder clearProcessInstancesId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        processInstancesId_ = 0L;
        onChanged();
        return this;
      }

      // optional string name = 3;
      private java.lang.Object name_ = "";
      /**
       * <code>optional string name = 3;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string name = 3;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string name = 3;</code>
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string name = 3;</code>
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 3;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 3;</code>
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        name_ = value;
        onChanged();
        return this;
      }

      // optional int32 state = 4;
      private int state_ ;
      /**
       * <code>optional int32 state = 4;</code>
       */
      public boolean hasState() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int32 state = 4;</code>
       */
      public int getState() {
        return state_;
      }
      /**
       * <code>optional int32 state = 4;</code>
       */
      public Builder setState(int value) {
        bitField0_ |= 0x00000008;
        state_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 state = 4;</code>
       */
      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_;

      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
        if (variableBuilder_ == null) {
          return java.util.Collections.unmodifiableList(variable_);
        } else {
          return variableBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      public int getVariableCount() {
        if (variableBuilder_ == null) {
          return variable_.size();
        } else {
          return variableBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
        if (variableBuilder_ == null) {
          return variable_.get(index);
        } else {
          return variableBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      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;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      public Builder clearVariable() {
        if (variableBuilder_ == null) {
          variable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          variableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      public Builder removeVariable(int index) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          variable_.remove(index);
          onChanged();
        } else {
          variableBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder getVariableBuilder(
          int index) {
        return getVariableFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
          int index) {
        if (variableBuilder_ == null) {
          return variable_.get(index);  } else {
          return variableBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      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_);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder() {
        return getVariableFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder addVariableBuilder(
          int index) {
        return getVariableFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
       */
      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;
    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     */
    boolean hasTimer();
    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getTimer();
    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder getTimerOrBuilder();

    // optional .org.drools.marshalling.Trigger trigger = 2;
    /**
     * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
     */
    boolean hasTrigger();
    /**
     * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
     */
    org.drools.marshalling.impl.ProtobufMessages.Trigger getTrigger();
    /**
     * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
     */
    org.drools.marshalling.impl.ProtobufMessages.TriggerOrBuilder getTriggerOrBuilder();
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.ProcessTimer}
   */
  public static final class ProcessTimer extends
      com.google.protobuf.GeneratedMessage
      implements ProcessTimerOrBuilder {
    // Use ProcessTimer.newBuilder() to construct.
    private ProcessTimer(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ProcessTimer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final ProcessTimer defaultInstance;
    public static ProcessTimer getDefaultInstance() {
      return defaultInstance;
    }

    public ProcessTimer getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ProcessTimer(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = timer_.toBuilder();
              }
              timer_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timer_);
                timer_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              org.drools.marshalling.impl.ProtobufMessages.Trigger.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = trigger_.toBuilder();
              }
              trigger_ = input.readMessage(org.drools.marshalling.impl.ProtobufMessages.Trigger.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(trigger_);
                trigger_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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
          .ensureFieldAccessorsInitialized(
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.Builder.class);
    }

    public static com.google.protobuf.Parser<ProcessTimer> PARSER =
        new com.google.protobuf.AbstractParser<ProcessTimer>() {
      public ProcessTimer parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ProcessTimer(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<ProcessTimer> getParserForType() {
      return PARSER;
    }

    public interface TimerInstanceOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int64 id = 1;
      /**
       * <code>optional int64 id = 1;</code>
       */
      boolean hasId();
      /**
       * <code>optional int64 id = 1;</code>
       */
      long getId();

      // optional int64 timer_id = 2;
      /**
       * <code>optional int64 timer_id = 2;</code>
       */
      boolean hasTimerId();
      /**
       * <code>optional int64 timer_id = 2;</code>
       */
      long getTimerId();

      // optional int64 delay = 3;
      /**
       * <code>optional int64 delay = 3;</code>
       */
      boolean hasDelay();
      /**
       * <code>optional int64 delay = 3;</code>
       */
      long getDelay();

      // optional int64 period = 4;
      /**
       * <code>optional int64 period = 4;</code>
       */
      boolean hasPeriod();
      /**
       * <code>optional int64 period = 4;</code>
       */
      long getPeriod();

      // optional int64 process_instance_id = 5;
      /**
       * <code>optional int64 process_instance_id = 5;</code>
       */
      boolean hasProcessInstanceId();
      /**
       * <code>optional int64 process_instance_id = 5;</code>
       */
      long getProcessInstanceId();

      // optional int64 activated_time = 6;
      /**
       * <code>optional int64 activated_time = 6;</code>
       */
      boolean hasActivatedTime();
      /**
       * <code>optional int64 activated_time = 6;</code>
       */
      long getActivatedTime();

      // optional int64 last_triggered = 7;
      /**
       * <code>optional int64 last_triggered = 7;</code>
       */
      boolean hasLastTriggered();
      /**
       * <code>optional int64 last_triggered = 7;</code>
       */
      long getLastTriggered();
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessTimer.TimerInstance}
     */
    public static final class TimerInstance extends
        com.google.protobuf.GeneratedMessage
        implements TimerInstanceOrBuilder {
      // Use TimerInstance.newBuilder() to construct.
      private TimerInstance(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private TimerInstance(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final TimerInstance defaultInstance;
      public static TimerInstance getDefaultInstance() {
        return defaultInstance;
      }

      public TimerInstance getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private TimerInstance(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                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;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      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
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder.class);
      }

      public static com.google.protobuf.Parser<TimerInstance> PARSER =
          new com.google.protobuf.AbstractParser<TimerInstance>() {
        public TimerInstance parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new TimerInstance(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser<TimerInstance> getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int64 id = 1;
      public static final int ID_FIELD_NUMBER = 1;
      private long id_;
      /**
       * <code>optional int64 id = 1;</code>
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int64 id = 1;</code>
       */
      public long getId() {
        return id_;
      }

      // optional int64 timer_id = 2;
      public static final int TIMER_ID_FIELD_NUMBER = 2;
      private long timerId_;
      /**
       * <code>optional int64 timer_id = 2;</code>
       */
      public boolean hasTimerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int64 timer_id = 2;</code>
       */
      public long getTimerId() {
        return timerId_;
      }

      // optional int64 delay = 3;
      public static final int DELAY_FIELD_NUMBER = 3;
      private long delay_;
      /**
       * <code>optional int64 delay = 3;</code>
       */
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int64 delay = 3;</code>
       */
      public long getDelay() {
        return delay_;
      }

      // optional int64 period = 4;
      public static final int PERIOD_FIELD_NUMBER = 4;
      private long period_;
      /**
       * <code>optional int64 period = 4;</code>
       */
      public boolean hasPeriod() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int64 period = 4;</code>
       */
      public long getPeriod() {
        return period_;
      }

      // optional int64 process_instance_id = 5;
      public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 5;
      private long processInstanceId_;
      /**
       * <code>optional int64 process_instance_id = 5;</code>
       */
      public boolean hasProcessInstanceId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional int64 process_instance_id = 5;</code>
       */
      public long getProcessInstanceId() {
        return processInstanceId_;
      }

      // optional int64 activated_time = 6;
      public static final int ACTIVATED_TIME_FIELD_NUMBER = 6;
      private long activatedTime_;
      /**
       * <code>optional int64 activated_time = 6;</code>
       */
      public boolean hasActivatedTime() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional int64 activated_time = 6;</code>
       */
      public long getActivatedTime() {
        return activatedTime_;
      }

      // optional int64 last_triggered = 7;
      public static final int LAST_TRIGGERED_FIELD_NUMBER = 7;
      private long lastTriggered_;
      /**
       * <code>optional int64 last_triggered = 7;</code>
       */
      public boolean hasLastTriggered() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional int64 last_triggered = 7;</code>
       */
      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;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.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 PARSER.parseFrom(data);
      }
      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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      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 PARSER.parseFrom(input, extensionRegistry);
      }

      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;
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessTimer.TimerInstance}
       */
      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
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder.class);
        }

        // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_descriptor;
        }

        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;
        }

        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 {
          org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int64 id = 1;
        private long id_ ;
        /**
         * <code>optional int64 id = 1;</code>
         */
        public boolean hasId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int64 id = 1;</code>
         */
        public long getId() {
          return id_;
        }
        /**
         * <code>optional int64 id = 1;</code>
         */
        public Builder setId(long value) {
          bitField0_ |= 0x00000001;
          id_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 id = 1;</code>
         */
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0L;
          onChanged();
          return this;
        }

        // optional int64 timer_id = 2;
        private long timerId_ ;
        /**
         * <code>optional int64 timer_id = 2;</code>
         */
        public boolean hasTimerId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional int64 timer_id = 2;</code>
         */
        public long getTimerId() {
          return timerId_;
        }
        /**
         * <code>optional int64 timer_id = 2;</code>
         */
        public Builder setTimerId(long value) {
          bitField0_ |= 0x00000002;
          timerId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 timer_id = 2;</code>
         */
        public Builder clearTimerId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          timerId_ = 0L;
          onChanged();
          return this;
        }

        // optional int64 delay = 3;
        private long delay_ ;
        /**
         * <code>optional int64 delay = 3;</code>
         */
        public boolean hasDelay() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional int64 delay = 3;</code>
         */
        public long getDelay() {
          return delay_;
        }
        /**
         * <code>optional int64 delay = 3;</code>
         */
        public Builder setDelay(long value) {
          bitField0_ |= 0x00000004;
          delay_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 delay = 3;</code>
         */
        public Builder clearDelay() {
          bitField0_ = (bitField0_ & ~0x00000004);
          delay_ = 0L;
          onChanged();
          return this;
        }

        // optional int64 period = 4;
        private long period_ ;
        /**
         * <code>optional int64 period = 4;</code>
         */
        public boolean hasPeriod() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional int64 period = 4;</code>
         */
        public long getPeriod() {
          return period_;
        }
        /**
         * <code>optional int64 period = 4;</code>
         */
        public Builder setPeriod(long value) {
          bitField0_ |= 0x00000008;
          period_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 period = 4;</code>
         */
        public Builder clearPeriod() {
          bitField0_ = (bitField0_ & ~0x00000008);
          period_ = 0L;
          onChanged();
          return this;
        }

        // optional int64 process_instance_id = 5;
        private long processInstanceId_ ;
        /**
         * <code>optional int64 process_instance_id = 5;</code>
         */
        public boolean hasProcessInstanceId() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <code>optional int64 process_instance_id = 5;</code>
         */
        public long getProcessInstanceId() {
          return processInstanceId_;
        }
        /**
         * <code>optional int64 process_instance_id = 5;</code>
         */
        public Builder setProcessInstanceId(long value) {
          bitField0_ |= 0x00000010;
          processInstanceId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 process_instance_id = 5;</code>
         */
        public Builder clearProcessInstanceId() {
          bitField0_ = (bitField0_ & ~0x00000010);
          processInstanceId_ = 0L;
          onChanged();
          return this;
        }

        // optional int64 activated_time = 6;
        private long activatedTime_ ;
        /**
         * <code>optional int64 activated_time = 6;</code>
         */
        public boolean hasActivatedTime() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <code>optional int64 activated_time = 6;</code>
         */
        public long getActivatedTime() {
          return activatedTime_;
        }
        /**
         * <code>optional int64 activated_time = 6;</code>
         */
        public Builder setActivatedTime(long value) {
          bitField0_ |= 0x00000020;
          activatedTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 activated_time = 6;</code>
         */
        public Builder clearActivatedTime() {
          bitField0_ = (bitField0_ & ~0x00000020);
          activatedTime_ = 0L;
          onChanged();
          return this;
        }

        // optional int64 last_triggered = 7;
        private long lastTriggered_ ;
        /**
         * <code>optional int64 last_triggered = 7;</code>
         */
        public boolean hasLastTriggered() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * <code>optional int64 last_triggered = 7;</code>
         */
        public long getLastTriggered() {
          return lastTriggered_;
        }
        /**
         * <code>optional int64 last_triggered = 7;</code>
         */
        public Builder setLastTriggered(long value) {
          bitField0_ |= 0x00000040;
          lastTriggered_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 last_triggered = 7;</code>
         */
        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_;
    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     */
    public boolean hasTimer() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     */
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getTimer() {
      return timer_;
    }
    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     */
    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_;
    /**
     * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
     */
    public boolean hasTrigger() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
     */
    public org.drools.marshalling.impl.ProtobufMessages.Trigger getTrigger() {
      return trigger_;
    }
    /**
     * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
     */
    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;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.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 PARSER.parseFrom(data);
    }
    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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    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;
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessTimer}
     */
    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
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.Builder.class);
      }

      // Construct using org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.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.internal_static_org_jbpm_marshalling_ProcessTimer_descriptor;
      }

      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;
      }

      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 {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      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_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      public boolean hasTimer() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getTimer() {
        if (timerBuilder_ == null) {
          return timer_;
        } else {
          return timerBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      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;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      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;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      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;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      public Builder clearTimer() {
        if (timerBuilder_ == null) {
          timer_ = org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance();
          onChanged();
        } else {
          timerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder getTimerBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTimerFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder getTimerOrBuilder() {
        if (timerBuilder_ != null) {
          return timerBuilder_.getMessageOrBuilder();
        } else {
          return timer_;
        }
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      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_;
      /**
       * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
       */
      public boolean hasTrigger() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
       */
      public org.drools.marshalling.impl.ProtobufMessages.Trigger getTrigger() {
        if (triggerBuilder_ == null) {
          return trigger_;
        } else {
          return triggerBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
       */
      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;
      }
      /**
       * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
       */
      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;
      }
      /**
       * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
       */
      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;
      }
      /**
       * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
       */
      public Builder clearTrigger() {
        if (triggerBuilder_ == null) {
          trigger_ = org.drools.marshalling.impl.ProtobufMessages.Trigger.getDefaultInstance();
          onChanged();
        } else {
          triggerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
       */
      public org.drools.marshalling.impl.ProtobufMessages.Trigger.Builder getTriggerBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getTriggerFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
       */
      public org.drools.marshalling.impl.ProtobufMessages.TriggerOrBuilder getTriggerOrBuilder() {
        if (triggerBuilder_ != null) {
          return triggerBuilder_.getMessageOrBuilder();
        } else {
          return trigger_;
        }
      }
      /**
       * <code>optional .org.drools.marshalling.Trigger trigger = 2;</code>
       */
      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;
  /**
   * <code>extend .org.drools.marshalling.ProcessData { ... }</code>
   */
  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;
  /**
   * <code>extend .org.drools.marshalling.ProcessData { ... }</code>
   */
  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 TIMER_ID_FIELD_NUMBER = 13;
  /**
   * <code>extend .org.drools.marshalling.ProcessData { ... }</code>
   */
  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 PROCESS_TIMER_FIELD_NUMBER = 12;
  /**
   * <code>extend .org.drools.marshalling.ProcessData { ... }</code>
   */
  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 PROC_TIMER_FIELD_NUMBER = 100;
  /**
   * <code>extend .org.drools.marshalling.Timers.Timer { ... }</code>
   */
  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:5\n\010timer_id\022#.org" +
      ".drools.marshalling.ProcessData\030\r \001(\003:^\n" +
      "\rprocess_timer\022#.org.drools.marshalling." +
      "ProcessData\030\014 \003(\0132\".org.jbpm.marshalling" +
      ".ProcessTimer:\\\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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          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[] { });
          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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          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", });
          processInstance.internalInit(descriptor.getExtensions().get(0));
          workItem.internalInit(descriptor.getExtensions().get(1));
          timerId.internalInit(descriptor.getExtensions().get(2));
          processTimer.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)
}
