/*
 * Copyright 2017 Red Hat, Inc. and/or its affiliates.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// 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.ExtensionRegistryLite 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 static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface ProcessInstanceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string process_type = 1;</code>
     * @return Whether the processType field is set.
     */
    boolean hasProcessType();
    /**
     * <code>optional string process_type = 1;</code>
     * @return The processType.
     */
    java.lang.String getProcessType();
    /**
     * <code>optional string process_type = 1;</code>
     * @return The bytes for processType.
     */
    com.google.protobuf.ByteString
        getProcessTypeBytes();

    /**
     * <code>optional int64 id = 2;</code>
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * <code>optional int64 id = 2;</code>
     * @return The id.
     */
    long getId();

    /**
     * <code>optional string process_id = 3;</code>
     * @return Whether the processId field is set.
     */
    boolean hasProcessId();
    /**
     * <code>optional string process_id = 3;</code>
     * @return The processId.
     */
    java.lang.String getProcessId();
    /**
     * <code>optional string process_id = 3;</code>
     * @return The bytes for processId.
     */
    com.google.protobuf.ByteString
        getProcessIdBytes();

    /**
     * <code>optional int32 state = 4;</code>
     * @return Whether the state field is set.
     */
    boolean hasState();
    /**
     * <code>optional int32 state = 4;</code>
     * @return The state.
     */
    int getState();

    /**
     * <code>optional int64 node_instance_counter = 5;</code>
     * @return Whether the nodeInstanceCounter field is set.
     */
    boolean hasNodeInstanceCounter();
    /**
     * <code>optional int64 node_instance_counter = 5;</code>
     * @return The nodeInstanceCounter.
     */
    long getNodeInstanceCounter();

    /**
     * <code>optional string process_xml = 11;</code>
     * @return Whether the processXml field is set.
     */
    boolean hasProcessXml();
    /**
     * <code>optional string process_xml = 11;</code>
     * @return The processXml.
     */
    java.lang.String getProcessXml();
    /**
     * <code>optional string process_xml = 11;</code>
     * @return The bytes for processXml.
     */
    com.google.protobuf.ByteString
        getProcessXmlBytes();

    /**
     * <code>optional int64 parent_process_instance_id = 12;</code>
     * @return Whether the parentProcessInstanceId field is set.
     */
    boolean hasParentProcessInstanceId();
    /**
     * <code>optional int64 parent_process_instance_id = 12;</code>
     * @return The parentProcessInstanceId.
     */
    long getParentProcessInstanceId();

    /**
     * <code>optional string description = 15;</code>
     * @return Whether the description field is set.
     */
    boolean hasDescription();
    /**
     * <code>optional string description = 15;</code>
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * <code>optional string description = 15;</code>
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();

    /**
     * <code>optional bool signal_completion = 16 [default = true];</code>
     * @return Whether the signalCompletion field is set.
     */
    boolean hasSignalCompletion();
    /**
     * <code>optional bool signal_completion = 16 [default = true];</code>
     * @return The signalCompletion.
     */
    boolean getSignalCompletion();

    /**
     * <code>optional string deploymentId = 17;</code>
     * @return Whether the deploymentId field is set.
     */
    boolean hasDeploymentId();
    /**
     * <code>optional string deploymentId = 17;</code>
     * @return The deploymentId.
     */
    java.lang.String getDeploymentId();
    /**
     * <code>optional string deploymentId = 17;</code>
     * @return The bytes for deploymentId.
     */
    com.google.protobuf.ByteString
        getDeploymentIdBytes();

    /**
     * <code>optional string correlation_key = 18;</code>
     * @return Whether the correlationKey field is set.
     */
    boolean hasCorrelationKey();
    /**
     * <code>optional string correlation_key = 18;</code>
     * @return The correlationKey.
     */
    java.lang.String getCorrelationKey();
    /**
     * <code>optional string correlation_key = 18;</code>
     * @return The bytes for correlationKey.
     */
    com.google.protobuf.ByteString
        getCorrelationKeyBytes();

    /**
     * <code>optional int64 sla_timer_id = 19;</code>
     * @return Whether the slaTimerId field is set.
     */
    boolean hasSlaTimerId();
    /**
     * <code>optional int64 sla_timer_id = 19;</code>
     * @return The slaTimerId.
     */
    long getSlaTimerId();

    /**
     * <code>optional int64 sla_due_date = 20;</code>
     * @return Whether the slaDueDate field is set.
     */
    boolean hasSlaDueDate();
    /**
     * <code>optional int64 sla_due_date = 20;</code>
     * @return The slaDueDate.
     */
    long getSlaDueDate();

    /**
     * <code>optional int32 sla_compliance = 21;</code>
     * @return Whether the slaCompliance field is set.
     */
    boolean hasSlaCompliance();
    /**
     * <code>optional int32 sla_compliance = 21;</code>
     * @return The slaCompliance.
     */
    int getSlaCompliance();

    /**
     * <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);

    /**
     * <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);

    /**
     * <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);

    /**
     * <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);

    /**
     * <code>repeated string completedNodeIds = 13;</code>
     * @return A list containing the completedNodeIds.
     */
    java.util.List<java.lang.String>
        getCompletedNodeIdsList();
    /**
     * <code>repeated string completedNodeIds = 13;</code>
     * @return The count of completedNodeIds.
     */
    int getCompletedNodeIdsCount();
    /**
     * <code>repeated string completedNodeIds = 13;</code>
     * @param index The index of the element to return.
     * @return The completedNodeIds at the given index.
     */
    java.lang.String getCompletedNodeIds(int index);
    /**
     * <code>repeated string completedNodeIds = 13;</code>
     * @param index The index of the value to return.
     * @return The bytes of the completedNodeIds at the given index.
     */
    com.google.protobuf.ByteString
        getCompletedNodeIdsBytes(int index);

    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> 
        getIterationLevelsList();
    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getIterationLevels(int index);
    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    int getIterationLevelsCount();
    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
        getIterationLevelsOrBuilderList();
    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder getIterationLevelsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.ProcessInstance}
   */
  public static final class ProcessInstance extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance)
      ProcessInstanceOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ProcessInstance.newBuilder() to construct.
    private ProcessInstance(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProcessInstance() {
      processType_ = "";
      processId_ = "";
      processXml_ = "";
      description_ = "";
      signalCompletion_ = true;
      deploymentId_ = "";
      correlationKey_ = "";
      swimlaneContext_ = java.util.Collections.emptyList();
      nodeInstance_ = java.util.Collections.emptyList();
      variable_ = java.util.Collections.emptyList();
      exclusiveGroup_ = java.util.Collections.emptyList();
      completedNodeIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      iterationLevels_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ProcessInstance();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              processType_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              id_ = input.readInt64();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              processId_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              state_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              nodeInstanceCounter_ = input.readInt64();
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00004000) != 0)) {
                swimlaneContext_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance>();
                mutable_bitField0_ |= 0x00004000;
              }
              swimlaneContext_.add(
                  input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.PARSER, extensionRegistry));
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00008000) != 0)) {
                nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>();
                mutable_bitField0_ |= 0x00008000;
              }
              nodeInstance_.add(
                  input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.PARSER, extensionRegistry));
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00010000) != 0)) {
                variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>();
                mutable_bitField0_ |= 0x00010000;
              }
              variable_.add(
                  input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.Variable.PARSER, extensionRegistry));
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00020000) != 0)) {
                exclusiveGroup_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance>();
                mutable_bitField0_ |= 0x00020000;
              }
              exclusiveGroup_.add(
                  input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.PARSER, extensionRegistry));
              break;
            }
            case 90: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              processXml_ = bs;
              break;
            }
            case 96: {
              bitField0_ |= 0x00000040;
              parentProcessInstanceId_ = input.readInt64();
              break;
            }
            case 106: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00040000) != 0)) {
                completedNodeIds_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00040000;
              }
              completedNodeIds_.add(bs);
              break;
            }
            case 114: {
              if (!((mutable_bitField0_ & 0x00080000) != 0)) {
                iterationLevels_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel>();
                mutable_bitField0_ |= 0x00080000;
              }
              iterationLevels_.add(
                  input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.PARSER, extensionRegistry));
              break;
            }
            case 122: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              description_ = bs;
              break;
            }
            case 128: {
              bitField0_ |= 0x00000100;
              signalCompletion_ = input.readBool();
              break;
            }
            case 138: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000200;
              deploymentId_ = bs;
              break;
            }
            case 146: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000400;
              correlationKey_ = bs;
              break;
            }
            case 152: {
              bitField0_ |= 0x00000800;
              slaTimerId_ = input.readInt64();
              break;
            }
            case 160: {
              bitField0_ |= 0x00001000;
              slaDueDate_ = input.readInt64();
              break;
            }
            case 168: {
              bitField0_ |= 0x00002000;
              slaCompliance_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00004000) != 0)) {
          swimlaneContext_ = java.util.Collections.unmodifiableList(swimlaneContext_);
        }
        if (((mutable_bitField0_ & 0x00008000) != 0)) {
          nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
        }
        if (((mutable_bitField0_ & 0x00010000) != 0)) {
          variable_ = java.util.Collections.unmodifiableList(variable_);
        }
        if (((mutable_bitField0_ & 0x00020000) != 0)) {
          exclusiveGroup_ = java.util.Collections.unmodifiableList(exclusiveGroup_);
        }
        if (((mutable_bitField0_ & 0x00040000) != 0)) {
          completedNodeIds_ = completedNodeIds_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00080000) != 0)) {
          iterationLevels_ = java.util.Collections.unmodifiableList(iterationLevels_);
        }
        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;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.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);
    }

    /**
     * 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),
      /**
       * <code>HUMAN_TASK_NODE = 1;</code>
       */
      HUMAN_TASK_NODE(1),
      /**
       * <code>WORK_ITEM_NODE = 2;</code>
       */
      WORK_ITEM_NODE(2),
      /**
       * <code>SUBPROCESS_NODE = 3;</code>
       */
      SUBPROCESS_NODE(3),
      /**
       * <code>MILESTONE_NODE = 4;</code>
       */
      MILESTONE_NODE(4),
      /**
       * <code>EVENT_NODE = 5;</code>
       */
      EVENT_NODE(5),
      /**
       * <code>TIMER_NODE = 6;</code>
       */
      TIMER_NODE(6),
      /**
       * <code>JOIN_NODE = 7;</code>
       */
      JOIN_NODE(7),
      /**
       * <code>STATE_NODE = 8;</code>
       */
      STATE_NODE(8),
      /**
       * <code>COMPOSITE_CONTEXT_NODE = 9;</code>
       */
      COMPOSITE_CONTEXT_NODE(9),
      /**
       * <code>FOR_EACH_NODE = 10;</code>
       */
      FOR_EACH_NODE(10),
      /**
       * <code>DYNAMIC_NODE = 11;</code>
       */
      DYNAMIC_NODE(11),
      /**
       * <code>EVENT_SUBPROCESS_NODE = 12;</code>
       */
      EVENT_SUBPROCESS_NODE(12),
      /**
       * <code>ASYNC_EVENT_NODE = 13;</code>
       */
      ASYNC_EVENT_NODE(13),
      ;

      /**
       * <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;
      /**
       * <code>EVENT_SUBPROCESS_NODE = 12;</code>
       */
      public static final int EVENT_SUBPROCESS_NODE_VALUE = 12;
      /**
       * <code>ASYNC_EVENT_NODE = 13;</code>
       */
      public static final int ASYNC_EVENT_NODE_VALUE = 13;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static NodeInstanceType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static NodeInstanceType forNumber(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;
          case 12: return EVENT_SUBPROCESS_NODE;
          case 13: return ASYNC_EVENT_NODE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<NodeInstanceType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          NodeInstanceType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<NodeInstanceType>() {
              public NodeInstanceType findValueByNumber(int number) {
                return NodeInstanceType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      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 value;

      private NodeInstanceType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceType)
    }

    public interface SwimlaneContextInstanceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional string swimlane = 1;</code>
       * @return Whether the swimlane field is set.
       */
      boolean hasSwimlane();
      /**
       * <code>optional string swimlane = 1;</code>
       * @return The swimlane.
       */
      java.lang.String getSwimlane();
      /**
       * <code>optional string swimlane = 1;</code>
       * @return The bytes for swimlane.
       */
      com.google.protobuf.ByteString
          getSwimlaneBytes();

      /**
       * <code>optional string actor_id = 2;</code>
       * @return Whether the actorId field is set.
       */
      boolean hasActorId();
      /**
       * <code>optional string actor_id = 2;</code>
       * @return The actorId.
       */
      java.lang.String getActorId();
      /**
       * <code>optional string actor_id = 2;</code>
       * @return The bytes for actorId.
       */
      com.google.protobuf.ByteString
          getActorIdBytes();
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance}
     */
    public static final class SwimlaneContextInstance extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance)
        SwimlaneContextInstanceOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use SwimlaneContextInstance.newBuilder() to construct.
      private SwimlaneContextInstance(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private SwimlaneContextInstance() {
        swimlane_ = "";
        actorId_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new SwimlaneContextInstance();
      }

      @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 {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              case 10: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                swimlane_ = bs;
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                actorId_ = bs;
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).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;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.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);
      }

      private int bitField0_;
      public static final int SWIMLANE_FIELD_NUMBER = 1;
      private volatile java.lang.Object swimlane_;
      /**
       * <code>optional string swimlane = 1;</code>
       * @return Whether the swimlane field is set.
       */
      @java.lang.Override
      public boolean hasSwimlane() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string swimlane = 1;</code>
       * @return The swimlane.
       */
      @java.lang.Override
      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>
       * @return The bytes for swimlane.
       */
      @java.lang.Override
      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;
        }
      }

      public static final int ACTOR_ID_FIELD_NUMBER = 2;
      private volatile java.lang.Object actorId_;
      /**
       * <code>optional string actor_id = 2;</code>
       * @return Whether the actorId field is set.
       */
      @java.lang.Override
      public boolean hasActorId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string actor_id = 2;</code>
       * @return The actorId.
       */
      @java.lang.Override
      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>
       * @return The bytes for actorId.
       */
      @java.lang.Override
      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 byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, swimlane_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, actorId_);
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, swimlane_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, actorId_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance)) {
          return super.equals(obj);
        }
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance) obj;

        if (hasSwimlane() != other.hasSwimlane()) return false;
        if (hasSwimlane()) {
          if (!getSwimlane()
              .equals(other.getSwimlane())) return false;
        }
        if (hasActorId() != other.hasActorId()) return false;
        if (hasActorId()) {
          if (!getActorId()
              .equals(other.getActorId())) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasSwimlane()) {
          hash = (37 * hash) + SWIMLANE_FIELD_NUMBER;
          hash = (53 * hash) + getSwimlane().hashCode();
        }
        if (hasActorId()) {
          hash = (37 * hash) + ACTOR_ID_FIELD_NUMBER;
          hash = (53 * hash) + getActorId().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          java.nio.ByteBuffer 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(
          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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance)
          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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          swimlane_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          actorId_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_descriptor;
        }

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.getDefaultInstance();
        }

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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) != 0)) {
            to_bitField0_ |= 0x00000001;
          }
          result.swimlane_ = swimlane_;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            to_bitField0_ |= 0x00000002;
          }
          result.actorId_ = actorId_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        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.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        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.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object swimlane_ = "";
        /**
         * <code>optional string swimlane = 1;</code>
         * @return Whether the swimlane field is set.
         */
        public boolean hasSwimlane() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional string swimlane = 1;</code>
         * @return The swimlane.
         */
        public java.lang.String getSwimlane() {
          java.lang.Object ref = swimlane_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              swimlane_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string swimlane = 1;</code>
         * @return The bytes for swimlane.
         */
        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>
         * @param value The swimlane to set.
         * @return This builder for chaining.
         */
        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>
         * @return This builder for chaining.
         */
        public Builder clearSwimlane() {
          bitField0_ = (bitField0_ & ~0x00000001);
          swimlane_ = getDefaultInstance().getSwimlane();
          onChanged();
          return this;
        }
        /**
         * <code>optional string swimlane = 1;</code>
         * @param value The bytes for swimlane to set.
         * @return This builder for chaining.
         */
        public Builder setSwimlaneBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          swimlane_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object actorId_ = "";
        /**
         * <code>optional string actor_id = 2;</code>
         * @return Whether the actorId field is set.
         */
        public boolean hasActorId() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional string actor_id = 2;</code>
         * @return The actorId.
         */
        public java.lang.String getActorId() {
          java.lang.Object ref = actorId_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              actorId_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string actor_id = 2;</code>
         * @return The bytes for actorId.
         */
        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>
         * @param value The actorId to set.
         * @return This builder for chaining.
         */
        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>
         * @return This builder for chaining.
         */
        public Builder clearActorId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          actorId_ = getDefaultInstance().getActorId();
          onChanged();
          return this;
        }
        /**
         * <code>optional string actor_id = 2;</code>
         * @param value The bytes for actorId to set.
         * @return This builder for chaining.
         */
        public Builder setActorIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          actorId_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance)
      }

      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance)
      private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance();
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

      public static com.google.protobuf.Parser<SwimlaneContextInstance> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface NodeInstanceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstance)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional int64 id = 1;</code>
       * @return Whether the id field is set.
       */
      boolean hasId();
      /**
       * <code>optional int64 id = 1;</code>
       * @return The id.
       */
      long getId();

      /**
       * <code>optional int64 node_id = 2;</code>
       * @return Whether the nodeId field is set.
       */
      boolean hasNodeId();
      /**
       * <code>optional int64 node_id = 2;</code>
       * @return The nodeId.
       */
      long getNodeId();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       * @return Whether the content field is set.
       */
      boolean hasContent();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       * @return The content.
       */
      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();

      /**
       * <code>optional int32 level = 5;</code>
       * @return Whether the level field is set.
       */
      boolean hasLevel();
      /**
       * <code>optional int32 level = 5;</code>
       * @return The level.
       */
      int getLevel();

      /**
       * <code>optional int64 sla_timer_id = 6;</code>
       * @return Whether the slaTimerId field is set.
       */
      boolean hasSlaTimerId();
      /**
       * <code>optional int64 sla_timer_id = 6;</code>
       * @return The slaTimerId.
       */
      long getSlaTimerId();

      /**
       * <code>optional int64 sla_due_date = 7;</code>
       * @return Whether the slaDueDate field is set.
       */
      boolean hasSlaDueDate();
      /**
       * <code>optional int64 sla_due_date = 7;</code>
       * @return The slaDueDate.
       */
      long getSlaDueDate();

      /**
       * <code>optional int32 sla_compliance = 8;</code>
       * @return Whether the slaCompliance field is set.
       */
      boolean hasSlaCompliance();
      /**
       * <code>optional int32 sla_compliance = 8;</code>
       * @return The slaCompliance.
       */
      int getSlaCompliance();
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstance}
     */
    public static final class NodeInstance extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstance)
        NodeInstanceOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use NodeInstance.newBuilder() to construct.
      private NodeInstance(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private NodeInstance() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new NodeInstance();
      }

      @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 {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              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) != 0)) {
                  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;
              }
              case 40: {
                bitField0_ |= 0x00000008;
                level_ = input.readInt32();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000010;
                slaTimerId_ = input.readInt64();
                break;
              }
              case 56: {
                bitField0_ |= 0x00000020;
                slaDueDate_ = input.readInt64();
                break;
              }
              case 64: {
                bitField0_ |= 0x00000040;
                slaCompliance_ = input.readInt32();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).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;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.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);
      }

      private int bitField0_;
      public static final int ID_FIELD_NUMBER = 1;
      private long id_;
      /**
       * <code>optional int64 id = 1;</code>
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int64 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }

      public static final int NODE_ID_FIELD_NUMBER = 2;
      private long nodeId_;
      /**
       * <code>optional int64 node_id = 2;</code>
       * @return Whether the nodeId field is set.
       */
      @java.lang.Override
      public boolean hasNodeId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 node_id = 2;</code>
       * @return The nodeId.
       */
      @java.lang.Override
      public long getNodeId() {
        return nodeId_;
      }

      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>
       * @return Whether the content field is set.
       */
      @java.lang.Override
      public boolean hasContent() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       * @return The content.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getContent() {
        return content_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance() : content_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder getContentOrBuilder() {
        return content_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance() : content_;
      }

      public static final int LEVEL_FIELD_NUMBER = 5;
      private int level_;
      /**
       * <code>optional int32 level = 5;</code>
       * @return Whether the level field is set.
       */
      @java.lang.Override
      public boolean hasLevel() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int32 level = 5;</code>
       * @return The level.
       */
      @java.lang.Override
      public int getLevel() {
        return level_;
      }

      public static final int SLA_TIMER_ID_FIELD_NUMBER = 6;
      private long slaTimerId_;
      /**
       * <code>optional int64 sla_timer_id = 6;</code>
       * @return Whether the slaTimerId field is set.
       */
      @java.lang.Override
      public boolean hasSlaTimerId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int64 sla_timer_id = 6;</code>
       * @return The slaTimerId.
       */
      @java.lang.Override
      public long getSlaTimerId() {
        return slaTimerId_;
      }

      public static final int SLA_DUE_DATE_FIELD_NUMBER = 7;
      private long slaDueDate_;
      /**
       * <code>optional int64 sla_due_date = 7;</code>
       * @return Whether the slaDueDate field is set.
       */
      @java.lang.Override
      public boolean hasSlaDueDate() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional int64 sla_due_date = 7;</code>
       * @return The slaDueDate.
       */
      @java.lang.Override
      public long getSlaDueDate() {
        return slaDueDate_;
      }

      public static final int SLA_COMPLIANCE_FIELD_NUMBER = 8;
      private int slaCompliance_;
      /**
       * <code>optional int32 sla_compliance = 8;</code>
       * @return Whether the slaCompliance field is set.
       */
      @java.lang.Override
      public boolean hasSlaCompliance() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional int32 sla_compliance = 8;</code>
       * @return The slaCompliance.
       */
      @java.lang.Override
      public int getSlaCompliance() {
        return slaCompliance_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeInt64(1, id_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeInt64(2, nodeId_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeMessage(4, getContent());
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          output.writeInt32(5, level_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          output.writeInt64(6, slaTimerId_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          output.writeInt64(7, slaDueDate_);
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          output.writeInt32(8, slaCompliance_);
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, id_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, nodeId_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getContent());
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(5, level_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(6, slaTimerId_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(7, slaDueDate_);
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(8, slaCompliance_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance)) {
          return super.equals(obj);
        }
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance) obj;

        if (hasId() != other.hasId()) return false;
        if (hasId()) {
          if (getId()
              != other.getId()) return false;
        }
        if (hasNodeId() != other.hasNodeId()) return false;
        if (hasNodeId()) {
          if (getNodeId()
              != other.getNodeId()) return false;
        }
        if (hasContent() != other.hasContent()) return false;
        if (hasContent()) {
          if (!getContent()
              .equals(other.getContent())) return false;
        }
        if (hasLevel() != other.hasLevel()) return false;
        if (hasLevel()) {
          if (getLevel()
              != other.getLevel()) return false;
        }
        if (hasSlaTimerId() != other.hasSlaTimerId()) return false;
        if (hasSlaTimerId()) {
          if (getSlaTimerId()
              != other.getSlaTimerId()) return false;
        }
        if (hasSlaDueDate() != other.hasSlaDueDate()) return false;
        if (hasSlaDueDate()) {
          if (getSlaDueDate()
              != other.getSlaDueDate()) return false;
        }
        if (hasSlaCompliance() != other.hasSlaCompliance()) return false;
        if (hasSlaCompliance()) {
          if (getSlaCompliance()
              != other.getSlaCompliance()) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasId()) {
          hash = (37 * hash) + ID_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getId());
        }
        if (hasNodeId()) {
          hash = (37 * hash) + NODE_ID_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getNodeId());
        }
        if (hasContent()) {
          hash = (37 * hash) + CONTENT_FIELD_NUMBER;
          hash = (53 * hash) + getContent().hashCode();
        }
        if (hasLevel()) {
          hash = (37 * hash) + LEVEL_FIELD_NUMBER;
          hash = (53 * hash) + getLevel();
        }
        if (hasSlaTimerId()) {
          hash = (37 * hash) + SLA_TIMER_ID_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getSlaTimerId());
        }
        if (hasSlaDueDate()) {
          hash = (37 * hash) + SLA_DUE_DATE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getSlaDueDate());
        }
        if (hasSlaCompliance()) {
          hash = (37 * hash) + SLA_COMPLIANCE_FIELD_NUMBER;
          hash = (53 * hash) + getSlaCompliance();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          java.nio.ByteBuffer 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(
          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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstance)
          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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getContentFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          id_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000001);
          nodeId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000002);
          if (contentBuilder_ == null) {
            content_ = null;
          } else {
            contentBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          level_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          slaTimerId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000010);
          slaDueDate_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000020);
          slaCompliance_ = 0;
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_descriptor;
        }

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.getDefaultInstance();
        }

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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) != 0)) {
            result.id_ = id_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.nodeId_ = nodeId_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            if (contentBuilder_ == null) {
              result.content_ = content_;
            } else {
              result.content_ = contentBuilder_.build();
            }
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.level_ = level_;
            to_bitField0_ |= 0x00000008;
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.slaTimerId_ = slaTimerId_;
            to_bitField0_ |= 0x00000010;
          }
          if (((from_bitField0_ & 0x00000020) != 0)) {
            result.slaDueDate_ = slaDueDate_;
            to_bitField0_ |= 0x00000020;
          }
          if (((from_bitField0_ & 0x00000040) != 0)) {
            result.slaCompliance_ = slaCompliance_;
            to_bitField0_ |= 0x00000040;
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        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());
          }
          if (other.hasLevel()) {
            setLevel(other.getLevel());
          }
          if (other.hasSlaTimerId()) {
            setSlaTimerId(other.getSlaTimerId());
          }
          if (other.hasSlaDueDate()) {
            setSlaDueDate(other.getSlaDueDate());
          }
          if (other.hasSlaCompliance()) {
            setSlaCompliance(other.getSlaCompliance());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        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.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private long id_ ;
        /**
         * <code>optional int64 id = 1;</code>
         * @return Whether the id field is set.
         */
        @java.lang.Override
        public boolean hasId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional int64 id = 1;</code>
         * @return The id.
         */
        @java.lang.Override
        public long getId() {
          return id_;
        }
        /**
         * <code>optional int64 id = 1;</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(long value) {
          bitField0_ |= 0x00000001;
          id_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 id = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0L;
          onChanged();
          return this;
        }

        private long nodeId_ ;
        /**
         * <code>optional int64 node_id = 2;</code>
         * @return Whether the nodeId field is set.
         */
        @java.lang.Override
        public boolean hasNodeId() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional int64 node_id = 2;</code>
         * @return The nodeId.
         */
        @java.lang.Override
        public long getNodeId() {
          return nodeId_;
        }
        /**
         * <code>optional int64 node_id = 2;</code>
         * @param value The nodeId to set.
         * @return This builder for chaining.
         */
        public Builder setNodeId(long value) {
          bitField0_ |= 0x00000002;
          nodeId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 node_id = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearNodeId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          nodeId_ = 0L;
          onChanged();
          return this;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent content_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the content field is set.
         */
        public boolean hasContent() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         * @return The content.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getContent() {
          if (contentBuilder_ == null) {
            return content_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance() : 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) != 0) &&
                content_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance() : content_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent content = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContentOrBuilder>(
                    getContent(),
                    getParentForChildren(),
                    isClean());
            content_ = null;
          }
          return contentBuilder_;
        }

        private int level_ ;
        /**
         * <code>optional int32 level = 5;</code>
         * @return Whether the level field is set.
         */
        @java.lang.Override
        public boolean hasLevel() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <code>optional int32 level = 5;</code>
         * @return The level.
         */
        @java.lang.Override
        public int getLevel() {
          return level_;
        }
        /**
         * <code>optional int32 level = 5;</code>
         * @param value The level to set.
         * @return This builder for chaining.
         */
        public Builder setLevel(int value) {
          bitField0_ |= 0x00000008;
          level_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int32 level = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearLevel() {
          bitField0_ = (bitField0_ & ~0x00000008);
          level_ = 0;
          onChanged();
          return this;
        }

        private long slaTimerId_ ;
        /**
         * <code>optional int64 sla_timer_id = 6;</code>
         * @return Whether the slaTimerId field is set.
         */
        @java.lang.Override
        public boolean hasSlaTimerId() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <code>optional int64 sla_timer_id = 6;</code>
         * @return The slaTimerId.
         */
        @java.lang.Override
        public long getSlaTimerId() {
          return slaTimerId_;
        }
        /**
         * <code>optional int64 sla_timer_id = 6;</code>
         * @param value The slaTimerId to set.
         * @return This builder for chaining.
         */
        public Builder setSlaTimerId(long value) {
          bitField0_ |= 0x00000010;
          slaTimerId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 sla_timer_id = 6;</code>
         * @return This builder for chaining.
         */
        public Builder clearSlaTimerId() {
          bitField0_ = (bitField0_ & ~0x00000010);
          slaTimerId_ = 0L;
          onChanged();
          return this;
        }

        private long slaDueDate_ ;
        /**
         * <code>optional int64 sla_due_date = 7;</code>
         * @return Whether the slaDueDate field is set.
         */
        @java.lang.Override
        public boolean hasSlaDueDate() {
          return ((bitField0_ & 0x00000020) != 0);
        }
        /**
         * <code>optional int64 sla_due_date = 7;</code>
         * @return The slaDueDate.
         */
        @java.lang.Override
        public long getSlaDueDate() {
          return slaDueDate_;
        }
        /**
         * <code>optional int64 sla_due_date = 7;</code>
         * @param value The slaDueDate to set.
         * @return This builder for chaining.
         */
        public Builder setSlaDueDate(long value) {
          bitField0_ |= 0x00000020;
          slaDueDate_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 sla_due_date = 7;</code>
         * @return This builder for chaining.
         */
        public Builder clearSlaDueDate() {
          bitField0_ = (bitField0_ & ~0x00000020);
          slaDueDate_ = 0L;
          onChanged();
          return this;
        }

        private int slaCompliance_ ;
        /**
         * <code>optional int32 sla_compliance = 8;</code>
         * @return Whether the slaCompliance field is set.
         */
        @java.lang.Override
        public boolean hasSlaCompliance() {
          return ((bitField0_ & 0x00000040) != 0);
        }
        /**
         * <code>optional int32 sla_compliance = 8;</code>
         * @return The slaCompliance.
         */
        @java.lang.Override
        public int getSlaCompliance() {
          return slaCompliance_;
        }
        /**
         * <code>optional int32 sla_compliance = 8;</code>
         * @param value The slaCompliance to set.
         * @return This builder for chaining.
         */
        public Builder setSlaCompliance(int value) {
          bitField0_ |= 0x00000040;
          slaCompliance_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int32 sla_compliance = 8;</code>
         * @return This builder for chaining.
         */
        public Builder clearSlaCompliance() {
          bitField0_ = (bitField0_ & ~0x00000040);
          slaCompliance_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstance)
      }

      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstance)
      private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance();
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

      public static com.google.protobuf.Parser<NodeInstance> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ExclusiveGroupInstanceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       * @return A list containing the groupNodeInstanceId.
       */
      java.util.List<java.lang.Long> getGroupNodeInstanceIdList();
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       * @return The count of groupNodeInstanceId.
       */
      int getGroupNodeInstanceIdCount();
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       * @param index The index of the element to return.
       * @return The groupNodeInstanceId at the given index.
       */
      long getGroupNodeInstanceId(int index);
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance}
     */
    public static final class ExclusiveGroupInstance extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance)
        ExclusiveGroupInstanceOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ExclusiveGroupInstance.newBuilder() to construct.
      private ExclusiveGroupInstance(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ExclusiveGroupInstance() {
        groupNodeInstanceId_ = emptyLongList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new ExclusiveGroupInstance();
      }

      @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 {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              case 8: {
                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                  groupNodeInstanceId_ = newLongList();
                  mutable_bitField0_ |= 0x00000001;
                }
                groupNodeInstanceId_.addLong(input.readInt64());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                  groupNodeInstanceId_ = newLongList();
                  mutable_bitField0_ |= 0x00000001;
                }
                while (input.getBytesUntilLimit() > 0) {
                  groupNodeInstanceId_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) != 0)) {
            groupNodeInstanceId_.makeImmutable(); // C
          }
          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;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.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 final int GROUP_NODE_INSTANCE_ID_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.LongList groupNodeInstanceId_;
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       * @return A list containing the groupNodeInstanceId.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getGroupNodeInstanceIdList() {
        return groupNodeInstanceId_;
      }
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       * @return The count of groupNodeInstanceId.
       */
      public int getGroupNodeInstanceIdCount() {
        return groupNodeInstanceId_.size();
      }
      /**
       * <code>repeated int64 group_node_instance_id = 1;</code>
       * @param index The index of the element to return.
       * @return The groupNodeInstanceId at the given index.
       */
      public long getGroupNodeInstanceId(int index) {
        return groupNodeInstanceId_.getLong(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < groupNodeInstanceId_.size(); i++) {
          output.writeInt64(1, groupNodeInstanceId_.getLong(i));
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        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_.getLong(i));
          }
          size += dataSize;
          size += 1 * getGroupNodeInstanceIdList().size();
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance)) {
          return super.equals(obj);
        }
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance) obj;

        if (!getGroupNodeInstanceIdList()
            .equals(other.getGroupNodeInstanceIdList())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getGroupNodeInstanceIdCount() > 0) {
          hash = (37 * hash) + GROUP_NODE_INSTANCE_ID_FIELD_NUMBER;
          hash = (53 * hash) + getGroupNodeInstanceIdList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          java.nio.ByteBuffer 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(
          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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance)
          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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          groupNodeInstanceId_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_descriptor;
        }

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.getDefaultInstance();
        }

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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) != 0)) {
            groupNodeInstanceId_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.groupNodeInstanceId_ = groupNodeInstanceId_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        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.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        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.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private com.google.protobuf.Internal.LongList groupNodeInstanceId_ = emptyLongList();
        private void ensureGroupNodeInstanceIdIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            groupNodeInstanceId_ = mutableCopy(groupNodeInstanceId_);
            bitField0_ |= 0x00000001;
           }
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         * @return A list containing the groupNodeInstanceId.
         */
        public java.util.List<java.lang.Long>
            getGroupNodeInstanceIdList() {
          return ((bitField0_ & 0x00000001) != 0) ?
                   java.util.Collections.unmodifiableList(groupNodeInstanceId_) : groupNodeInstanceId_;
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         * @return The count of groupNodeInstanceId.
         */
        public int getGroupNodeInstanceIdCount() {
          return groupNodeInstanceId_.size();
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         * @param index The index of the element to return.
         * @return The groupNodeInstanceId at the given index.
         */
        public long getGroupNodeInstanceId(int index) {
          return groupNodeInstanceId_.getLong(index);
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         * @param index The index to set the value at.
         * @param value The groupNodeInstanceId to set.
         * @return This builder for chaining.
         */
        public Builder setGroupNodeInstanceId(
            int index, long value) {
          ensureGroupNodeInstanceIdIsMutable();
          groupNodeInstanceId_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         * @param value The groupNodeInstanceId to add.
         * @return This builder for chaining.
         */
        public Builder addGroupNodeInstanceId(long value) {
          ensureGroupNodeInstanceIdIsMutable();
          groupNodeInstanceId_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         * @param values The groupNodeInstanceId to add.
         * @return This builder for chaining.
         */
        public Builder addAllGroupNodeInstanceId(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureGroupNodeInstanceIdIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, groupNodeInstanceId_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 group_node_instance_id = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearGroupNodeInstanceId() {
          groupNodeInstanceId_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance)
      }

      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance)
      private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance();
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

      public static com.google.protobuf.Parser<ExclusiveGroupInstance> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface NodeInstanceContentOrBuilder extends
        // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
       * @return Whether the type field is set.
       */
      boolean hasType();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
       * @return The type.
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType getType();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       * @return Whether the ruleSet field is set.
       */
      boolean hasRuleSet();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       * @return The ruleSet.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       * @return Whether the humanTask field is set.
       */
      boolean hasHumanTask();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       * @return The humanTask.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       * @return Whether the workItem field is set.
       */
      boolean hasWorkItem();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       * @return The workItem.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       * @return Whether the subProcess field is set.
       */
      boolean hasSubProcess();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       * @return The subProcess.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       * @return Whether the milestone field is set.
       */
      boolean hasMilestone();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       * @return The milestone.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       * @return Whether the event field is set.
       */
      boolean hasEvent();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       * @return The event.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       * @return Whether the timer field is set.
       */
      boolean hasTimer();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       * @return The timer.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       * @return Whether the join field is set.
       */
      boolean hasJoin();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       * @return The join.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       * @return Whether the state field is set.
       */
      boolean hasState();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       * @return The state.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       * @return Whether the composite field is set.
       */
      boolean hasComposite();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       * @return The composite.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       * @return Whether the forEach field is set.
       */
      boolean hasForEach();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       * @return The forEach.
       */
      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();

      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
       * @return Whether the asyncEvent field is set.
       */
      boolean hasAsyncEvent();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
       * @return The asyncEvent.
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode getAsyncEvent();
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
       */
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNodeOrBuilder getAsyncEventOrBuilder();
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent}
     */
    public static final class NodeInstanceContent extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent)
        NodeInstanceContentOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use NodeInstanceContent.newBuilder() to construct.
      private NodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private NodeInstanceContent() {
        type_ = 0;
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new NodeInstanceContent();
      }

      @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 {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              case 8: {
                int rawValue = input.readEnum();
                  @SuppressWarnings("deprecation")
                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_ = rawValue;
                }
                break;
              }
              case 18: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) != 0)) {
                  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) != 0)) {
                  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) != 0)) {
                  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) != 0)) {
                  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) != 0)) {
                  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) != 0)) {
                  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) != 0)) {
                  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) != 0)) {
                  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) != 0)) {
                  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) != 0)) {
                  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) != 0)) {
                  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;
              }
              case 106: {
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.Builder subBuilder = null;
                if (((bitField0_ & 0x00001000) != 0)) {
                  subBuilder = asyncEvent_.toBuilder();
                }
                asyncEvent_ = input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(asyncEvent_);
                  asyncEvent_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00001000;
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).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;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.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 interface RuleSetNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        long getTimerInstanceId(int index);

        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry> 
            getMapEntryList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry getMapEntry(int index);
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        int getMapEntryCount();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder> 
            getMapEntryOrBuilderList();
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder getMapEntryOrBuilder(
            int index);

        /**
         * <code>optional string rule_flow_group = 3;</code>
         * @return Whether the ruleFlowGroup field is set.
         */
        boolean hasRuleFlowGroup();
        /**
         * <code>optional string rule_flow_group = 3;</code>
         * @return The ruleFlowGroup.
         */
        java.lang.String getRuleFlowGroup();
        /**
         * <code>optional string rule_flow_group = 3;</code>
         * @return The bytes for ruleFlowGroup.
         */
        com.google.protobuf.ByteString
            getRuleFlowGroupBytes();
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode}
       */
      public static final class RuleSetNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode)
          RuleSetNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use RuleSetNode.newBuilder() to construct.
        private RuleSetNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private RuleSetNode() {
          timerInstanceId_ = emptyLongList();
          mapEntry_ = java.util.Collections.emptyList();
          ruleFlowGroup_ = "";
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new RuleSetNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 8: {
                  if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  timerInstanceId_.addLong(input.readInt64());
                  break;
                }
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.addLong(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 18: {
                  if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                    mapEntry_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  mapEntry_.add(
                      input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.PARSER, extensionRegistry));
                  break;
                }
                case 26: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  bitField0_ |= 0x00000001;
                  ruleFlowGroup_ = bs;
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) != 0)) {
              timerInstanceId_.makeImmutable(); // C
            }
            if (((mutable_bitField0_ & 0x00000002) != 0)) {
              mapEntry_ = java.util.Collections.unmodifiableList(mapEntry_);
            }
            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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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 interface TextMapEntryOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry)
            com.google.protobuf.MessageOrBuilder {

          /**
           * <code>optional string name = 1;</code>
           * @return Whether the name field is set.
           */
          boolean hasName();
          /**
           * <code>optional string name = 1;</code>
           * @return The name.
           */
          java.lang.String getName();
          /**
           * <code>optional string name = 1;</code>
           * @return The bytes for name.
           */
          com.google.protobuf.ByteString
              getNameBytes();

          /**
           * <code>optional string value = 2;</code>
           * @return Whether the value field is set.
           */
          boolean hasValue();
          /**
           * <code>optional string value = 2;</code>
           * @return The value.
           */
          java.lang.String getValue();
          /**
           * <code>optional string value = 2;</code>
           * @return The bytes for value.
           */
          com.google.protobuf.ByteString
              getValueBytes();
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry}
         */
        public static final class TextMapEntry extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry)
            TextMapEntryOrBuilder {
        private static final long serialVersionUID = 0L;
          // Use TextMapEntry.newBuilder() to construct.
          private TextMapEntry(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
          }
          private TextMapEntry() {
            name_ = "";
            value_ = "";
          }

          @java.lang.Override
          @SuppressWarnings({"unused"})
          protected java.lang.Object newInstance(
              UnusedPrivateParameter unused) {
            return new TextMapEntry();
          }

          @java.lang.Override
          public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
            return this.unknownFields;
          }
          private TextMapEntry(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            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;
                  case 10: {
                    com.google.protobuf.ByteString bs = input.readBytes();
                    bitField0_ |= 0x00000001;
                    name_ = bs;
                    break;
                  }
                  case 18: {
                    com.google.protobuf.ByteString bs = input.readBytes();
                    bitField0_ |= 0x00000002;
                    value_ = bs;
                    break;
                  }
                  default: {
                    if (!parseUnknownField(
                        input, unknownFields, extensionRegistry, tag)) {
                      done = true;
                    }
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(this);
            } catch (com.google.protobuf.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(
                  e).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_RuleSetNode_TextMapEntry_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_TextMapEntry_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder.class);
          }

          private int bitField0_;
          public static final int NAME_FIELD_NUMBER = 1;
          private volatile java.lang.Object name_;
          /**
           * <code>optional string name = 1;</code>
           * @return Whether the name field is set.
           */
          @java.lang.Override
          public boolean hasName() {
            return ((bitField0_ & 0x00000001) != 0);
          }
          /**
           * <code>optional string name = 1;</code>
           * @return The name.
           */
          @java.lang.Override
          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>
           * @return The bytes for name.
           */
          @java.lang.Override
          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;
            }
          }

          public static final int VALUE_FIELD_NUMBER = 2;
          private volatile java.lang.Object value_;
          /**
           * <code>optional string value = 2;</code>
           * @return Whether the value field is set.
           */
          @java.lang.Override
          public boolean hasValue() {
            return ((bitField0_ & 0x00000002) != 0);
          }
          /**
           * <code>optional string value = 2;</code>
           * @return The value.
           */
          @java.lang.Override
          public java.lang.String getValue() {
            java.lang.Object ref = value_;
            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()) {
                value_ = s;
              }
              return s;
            }
          }
          /**
           * <code>optional string value = 2;</code>
           * @return The bytes for value.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString
              getValueBytes() {
            java.lang.Object ref = value_;
            if (ref instanceof java.lang.String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              value_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }

          private byte memoizedIsInitialized = -1;
          @java.lang.Override
          public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            memoizedIsInitialized = 1;
            return true;
          }

          @java.lang.Override
          public void writeTo(com.google.protobuf.CodedOutputStream output)
                              throws java.io.IOException {
            if (((bitField0_ & 0x00000001) != 0)) {
              com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
              com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
            }
            unknownFields.writeTo(output);
          }

          @java.lang.Override
          public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
              size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
              size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
          }

          @java.lang.Override
          public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
             return true;
            }
            if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry)) {
              return super.equals(obj);
            }
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry) obj;

            if (hasName() != other.hasName()) return false;
            if (hasName()) {
              if (!getName()
                  .equals(other.getName())) return false;
            }
            if (hasValue() != other.hasValue()) return false;
            if (hasValue()) {
              if (!getValue()
                  .equals(other.getValue())) return false;
            }
            if (!unknownFields.equals(other.unknownFields)) return false;
            return true;
          }

          @java.lang.Override
          public int hashCode() {
            if (memoizedHashCode != 0) {
              return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasName()) {
              hash = (37 * hash) + NAME_FIELD_NUMBER;
              hash = (53 * hash) + getName().hashCode();
            }
            if (hasValue()) {
              hash = (37 * hash) + VALUE_FIELD_NUMBER;
              hash = (53 * hash) + getValue().hashCode();
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
          }

          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry parseFrom(
              java.nio.ByteBuffer data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry parseFrom(
              java.nio.ByteBuffer 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.TextMapEntry 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.TextMapEntry 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.TextMapEntry parseFrom(byte[] data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry 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.TextMapEntry parseFrom(java.io.InputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }

          @java.lang.Override
          public Builder newBuilderForType() { return newBuilder(); }
          public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
          }
          public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
          }
          @java.lang.Override
          public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
          }

          @java.lang.Override
          protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
          }
          /**
           * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry}
           */
          public static final class Builder extends
              com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
              // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry)
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
              return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_TextMapEntry_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_TextMapEntry_fieldAccessorTable
                  .ensureFieldAccessorsInitialized(
                      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder.class);
            }

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

            private Builder(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
              super(parent);
              maybeForceBuilderInitialization();
            }
            private void maybeForceBuilderInitialization() {
              if (com.google.protobuf.GeneratedMessageV3
                      .alwaysUseFieldBuilders) {
              }
            }
            @java.lang.Override
            public Builder clear() {
              super.clear();
              name_ = "";
              bitField0_ = (bitField0_ & ~0x00000001);
              value_ = "";
              bitField0_ = (bitField0_ & ~0x00000002);
              return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
              return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_TextMapEntry_descriptor;
            }

            @java.lang.Override
            public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry getDefaultInstanceForType() {
              return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry build() {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(result);
              }
              return result;
            }

            @java.lang.Override
            public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry buildPartial() {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry(this);
              int from_bitField0_ = bitField0_;
              int to_bitField0_ = 0;
              if (((from_bitField0_ & 0x00000001) != 0)) {
                to_bitField0_ |= 0x00000001;
              }
              result.name_ = name_;
              if (((from_bitField0_ & 0x00000002) != 0)) {
                to_bitField0_ |= 0x00000002;
              }
              result.value_ = value_;
              result.bitField0_ = to_bitField0_;
              onBuilt();
              return result;
            }

            @java.lang.Override
            public Builder clone() {
              return super.clone();
            }
            @java.lang.Override
            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return super.setField(field, value);
            }
            @java.lang.Override
            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
              return super.clearField(field);
            }
            @java.lang.Override
            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
              return super.clearOneof(oneof);
            }
            @java.lang.Override
            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, java.lang.Object value) {
              return super.setRepeatedField(field, index, value);
            }
            @java.lang.Override
            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return super.addRepeatedField(field, value);
            }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
              if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry) {
                return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry)other);
              } else {
                super.mergeFrom(other);
                return this;
              }
            }

            public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry other) {
              if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.getDefaultInstance()) return this;
              if (other.hasName()) {
                bitField0_ |= 0x00000001;
                name_ = other.name_;
                onChanged();
              }
              if (other.hasValue()) {
                bitField0_ |= 0x00000002;
                value_ = other.value_;
                onChanged();
              }
              this.mergeUnknownFields(other.unknownFields);
              onChanged();
              return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
              return true;
            }

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

            private java.lang.Object name_ = "";
            /**
             * <code>optional string name = 1;</code>
             * @return Whether the name field is set.
             */
            public boolean hasName() {
              return ((bitField0_ & 0x00000001) != 0);
            }
            /**
             * <code>optional string name = 1;</code>
             * @return The name.
             */
            public java.lang.String getName() {
              java.lang.Object ref = name_;
              if (!(ref instanceof java.lang.String)) {
                com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                if (bs.isValidUtf8()) {
                  name_ = s;
                }
                return s;
              } else {
                return (java.lang.String) ref;
              }
            }
            /**
             * <code>optional string name = 1;</code>
             * @return The bytes for name.
             */
            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>
             * @param value The name to set.
             * @return This builder for chaining.
             */
            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>
             * @return This builder for chaining.
             */
            public Builder clearName() {
              bitField0_ = (bitField0_ & ~0x00000001);
              name_ = getDefaultInstance().getName();
              onChanged();
              return this;
            }
            /**
             * <code>optional string name = 1;</code>
             * @param value The bytes for name to set.
             * @return This builder for chaining.
             */
            public Builder setNameBytes(
                com.google.protobuf.ByteString value) {
              if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
              name_ = value;
              onChanged();
              return this;
            }

            private java.lang.Object value_ = "";
            /**
             * <code>optional string value = 2;</code>
             * @return Whether the value field is set.
             */
            public boolean hasValue() {
              return ((bitField0_ & 0x00000002) != 0);
            }
            /**
             * <code>optional string value = 2;</code>
             * @return The value.
             */
            public java.lang.String getValue() {
              java.lang.Object ref = value_;
              if (!(ref instanceof java.lang.String)) {
                com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                if (bs.isValidUtf8()) {
                  value_ = s;
                }
                return s;
              } else {
                return (java.lang.String) ref;
              }
            }
            /**
             * <code>optional string value = 2;</code>
             * @return The bytes for value.
             */
            public com.google.protobuf.ByteString
                getValueBytes() {
              java.lang.Object ref = value_;
              if (ref instanceof String) {
                com.google.protobuf.ByteString b = 
                    com.google.protobuf.ByteString.copyFromUtf8(
                        (java.lang.String) ref);
                value_ = b;
                return b;
              } else {
                return (com.google.protobuf.ByteString) ref;
              }
            }
            /**
             * <code>optional string value = 2;</code>
             * @param value The value to set.
             * @return This builder for chaining.
             */
            public Builder setValue(
                java.lang.String value) {
              if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
              value_ = value;
              onChanged();
              return this;
            }
            /**
             * <code>optional string value = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearValue() {
              bitField0_ = (bitField0_ & ~0x00000002);
              value_ = getDefaultInstance().getValue();
              onChanged();
              return this;
            }
            /**
             * <code>optional string value = 2;</code>
             * @param value The bytes for value to set.
             * @return This builder for chaining.
             */
            public Builder setValueBytes(
                com.google.protobuf.ByteString value) {
              if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
              value_ = value;
              onChanged();
              return this;
            }
            @java.lang.Override
            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.mergeUnknownFields(unknownFields);
            }


            // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry)
          }

          // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry)
          private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry DEFAULT_INSTANCE;
          static {
            DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry();
          }

          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry getDefaultInstance() {
            return DEFAULT_INSTANCE;
          }

          @java.lang.Deprecated public static final com.google.protobuf.Parser<TextMapEntry>
              PARSER = new com.google.protobuf.AbstractParser<TextMapEntry>() {
            @java.lang.Override
            public TextMapEntry parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
              return new TextMapEntry(input, extensionRegistry);
            }
          };

          public static com.google.protobuf.Parser<TextMapEntry> parser() {
            return PARSER;
          }

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

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
          }

        }

        private int bitField0_;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        private com.google.protobuf.Internal.LongList timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return A list containing the timerInstanceId.
         */
        @java.lang.Override
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.getLong(index);
        }

        public static final int MAPENTRY_FIELD_NUMBER = 2;
        private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry> mapEntry_;
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        @java.lang.Override
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry> getMapEntryList() {
          return mapEntry_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        @java.lang.Override
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder> 
            getMapEntryOrBuilderList() {
          return mapEntry_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        @java.lang.Override
        public int getMapEntryCount() {
          return mapEntry_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry getMapEntry(int index) {
          return mapEntry_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder getMapEntryOrBuilder(
            int index) {
          return mapEntry_.get(index);
        }

        public static final int RULE_FLOW_GROUP_FIELD_NUMBER = 3;
        private volatile java.lang.Object ruleFlowGroup_;
        /**
         * <code>optional string rule_flow_group = 3;</code>
         * @return Whether the ruleFlowGroup field is set.
         */
        @java.lang.Override
        public boolean hasRuleFlowGroup() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional string rule_flow_group = 3;</code>
         * @return The ruleFlowGroup.
         */
        @java.lang.Override
        public java.lang.String getRuleFlowGroup() {
          java.lang.Object ref = ruleFlowGroup_;
          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()) {
              ruleFlowGroup_ = s;
            }
            return s;
          }
        }
        /**
         * <code>optional string rule_flow_group = 3;</code>
         * @return The bytes for ruleFlowGroup.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getRuleFlowGroupBytes() {
          java.lang.Object ref = ruleFlowGroup_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            ruleFlowGroup_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(1, timerInstanceId_.getLong(i));
          }
          for (int i = 0; i < mapEntry_.size(); i++) {
            output.writeMessage(2, mapEntry_.get(i));
          }
          if (((bitField0_ & 0x00000001) != 0)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 3, ruleFlowGroup_);
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          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_.getLong(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          for (int i = 0; i < mapEntry_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(2, mapEntry_.get(i));
          }
          if (((bitField0_ & 0x00000001) != 0)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, ruleFlowGroup_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode) obj;

          if (!getTimerInstanceIdList()
              .equals(other.getTimerInstanceIdList())) return false;
          if (!getMapEntryList()
              .equals(other.getMapEntryList())) return false;
          if (hasRuleFlowGroup() != other.hasRuleFlowGroup()) return false;
          if (hasRuleFlowGroup()) {
            if (!getRuleFlowGroup()
                .equals(other.getRuleFlowGroup())) return false;
          }
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getTimerInstanceIdCount() > 0) {
            hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + getTimerInstanceIdList().hashCode();
          }
          if (getMapEntryCount() > 0) {
            hash = (37 * hash) + MAPENTRY_FIELD_NUMBER;
            hash = (53 * hash) + getMapEntryList().hashCode();
          }
          if (hasRuleFlowGroup()) {
            hash = (37 * hash) + RULE_FLOW_GROUP_FIELD_NUMBER;
            hash = (53 * hash) + getRuleFlowGroup().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
              getMapEntryFieldBuilder();
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000001);
            if (mapEntryBuilder_ == null) {
              mapEntry_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              mapEntryBuilder_.clear();
            }
            ruleFlowGroup_ = "";
            bitField0_ = (bitField0_ & ~0x00000004);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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_;
            int to_bitField0_ = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
              timerInstanceId_.makeImmutable();
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.timerInstanceId_ = timerInstanceId_;
            if (mapEntryBuilder_ == null) {
              if (((bitField0_ & 0x00000002) != 0)) {
                mapEntry_ = java.util.Collections.unmodifiableList(mapEntry_);
                bitField0_ = (bitField0_ & ~0x00000002);
              }
              result.mapEntry_ = mapEntry_;
            } else {
              result.mapEntry_ = mapEntryBuilder_.build();
            }
            if (((from_bitField0_ & 0x00000004) != 0)) {
              to_bitField0_ |= 0x00000001;
            }
            result.ruleFlowGroup_ = ruleFlowGroup_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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();
            }
            if (mapEntryBuilder_ == null) {
              if (!other.mapEntry_.isEmpty()) {
                if (mapEntry_.isEmpty()) {
                  mapEntry_ = other.mapEntry_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                } else {
                  ensureMapEntryIsMutable();
                  mapEntry_.addAll(other.mapEntry_);
                }
                onChanged();
              }
            } else {
              if (!other.mapEntry_.isEmpty()) {
                if (mapEntryBuilder_.isEmpty()) {
                  mapEntryBuilder_.dispose();
                  mapEntryBuilder_ = null;
                  mapEntry_ = other.mapEntry_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                  mapEntryBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getMapEntryFieldBuilder() : null;
                } else {
                  mapEntryBuilder_.addAllMessages(other.mapEntry_);
                }
              }
            }
            if (other.hasRuleFlowGroup()) {
              bitField0_ |= 0x00000004;
              ruleFlowGroup_ = other.ruleFlowGroup_;
              onChanged();
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private com.google.protobuf.Internal.LongList timerInstanceId_ = emptyLongList();
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000001) != 0)) {
              timerInstanceId_ = mutableCopy(timerInstanceId_);
              bitField0_ |= 0x00000001;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @return A list containing the timerInstanceId.
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return ((bitField0_ & 0x00000001) != 0) ?
                     java.util.Collections.unmodifiableList(timerInstanceId_) : timerInstanceId_;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @return The count of timerInstanceId.
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param index The index of the element to return.
           * @return The timerInstanceId at the given index.
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.getLong(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param index The index to set the value at.
           * @param value The timerInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.setLong(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param value The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.addLong(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param values The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }

          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry> mapEntry_ =
            java.util.Collections.emptyList();
          private void ensureMapEntryIsMutable() {
            if (!((bitField0_ & 0x00000002) != 0)) {
              mapEntry_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry>(mapEntry_);
              bitField0_ |= 0x00000002;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder> mapEntryBuilder_;

          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry> getMapEntryList() {
            if (mapEntryBuilder_ == null) {
              return java.util.Collections.unmodifiableList(mapEntry_);
            } else {
              return mapEntryBuilder_.getMessageList();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public int getMapEntryCount() {
            if (mapEntryBuilder_ == null) {
              return mapEntry_.size();
            } else {
              return mapEntryBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry getMapEntry(int index) {
            if (mapEntryBuilder_ == null) {
              return mapEntry_.get(index);
            } else {
              return mapEntryBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public Builder setMapEntry(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry value) {
            if (mapEntryBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureMapEntryIsMutable();
              mapEntry_.set(index, value);
              onChanged();
            } else {
              mapEntryBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public Builder setMapEntry(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder builderForValue) {
            if (mapEntryBuilder_ == null) {
              ensureMapEntryIsMutable();
              mapEntry_.set(index, builderForValue.build());
              onChanged();
            } else {
              mapEntryBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public Builder addMapEntry(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry value) {
            if (mapEntryBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureMapEntryIsMutable();
              mapEntry_.add(value);
              onChanged();
            } else {
              mapEntryBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public Builder addMapEntry(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry value) {
            if (mapEntryBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureMapEntryIsMutable();
              mapEntry_.add(index, value);
              onChanged();
            } else {
              mapEntryBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public Builder addMapEntry(
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder builderForValue) {
            if (mapEntryBuilder_ == null) {
              ensureMapEntryIsMutable();
              mapEntry_.add(builderForValue.build());
              onChanged();
            } else {
              mapEntryBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public Builder addMapEntry(
              int index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder builderForValue) {
            if (mapEntryBuilder_ == null) {
              ensureMapEntryIsMutable();
              mapEntry_.add(index, builderForValue.build());
              onChanged();
            } else {
              mapEntryBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public Builder addAllMapEntry(
              java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry> values) {
            if (mapEntryBuilder_ == null) {
              ensureMapEntryIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, mapEntry_);
              onChanged();
            } else {
              mapEntryBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public Builder clearMapEntry() {
            if (mapEntryBuilder_ == null) {
              mapEntry_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
              onChanged();
            } else {
              mapEntryBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public Builder removeMapEntry(int index) {
            if (mapEntryBuilder_ == null) {
              ensureMapEntryIsMutable();
              mapEntry_.remove(index);
              onChanged();
            } else {
              mapEntryBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder getMapEntryBuilder(
              int index) {
            return getMapEntryFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder getMapEntryOrBuilder(
              int index) {
            if (mapEntryBuilder_ == null) {
              return mapEntry_.get(index);  } else {
              return mapEntryBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder> 
               getMapEntryOrBuilderList() {
            if (mapEntryBuilder_ != null) {
              return mapEntryBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(mapEntry_);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder addMapEntryBuilder() {
            return getMapEntryFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder addMapEntryBuilder(
              int index) {
            return getMapEntryFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry mapEntry = 2;</code>
           */
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder> 
               getMapEntryBuilderList() {
            return getMapEntryFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder> 
              getMapEntryFieldBuilder() {
            if (mapEntryBuilder_ == null) {
              mapEntryBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntry.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.TextMapEntryOrBuilder>(
                      mapEntry_,
                      ((bitField0_ & 0x00000002) != 0),
                      getParentForChildren(),
                      isClean());
              mapEntry_ = null;
            }
            return mapEntryBuilder_;
          }

          private java.lang.Object ruleFlowGroup_ = "";
          /**
           * <code>optional string rule_flow_group = 3;</code>
           * @return Whether the ruleFlowGroup field is set.
           */
          public boolean hasRuleFlowGroup() {
            return ((bitField0_ & 0x00000004) != 0);
          }
          /**
           * <code>optional string rule_flow_group = 3;</code>
           * @return The ruleFlowGroup.
           */
          public java.lang.String getRuleFlowGroup() {
            java.lang.Object ref = ruleFlowGroup_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              if (bs.isValidUtf8()) {
                ruleFlowGroup_ = s;
              }
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <code>optional string rule_flow_group = 3;</code>
           * @return The bytes for ruleFlowGroup.
           */
          public com.google.protobuf.ByteString
              getRuleFlowGroupBytes() {
            java.lang.Object ref = ruleFlowGroup_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              ruleFlowGroup_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <code>optional string rule_flow_group = 3;</code>
           * @param value The ruleFlowGroup to set.
           * @return This builder for chaining.
           */
          public Builder setRuleFlowGroup(
              java.lang.String value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
            ruleFlowGroup_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional string rule_flow_group = 3;</code>
           * @return This builder for chaining.
           */
          public Builder clearRuleFlowGroup() {
            bitField0_ = (bitField0_ & ~0x00000004);
            ruleFlowGroup_ = getDefaultInstance().getRuleFlowGroup();
            onChanged();
            return this;
          }
          /**
           * <code>optional string rule_flow_group = 3;</code>
           * @param value The bytes for ruleFlowGroup to set.
           * @return This builder for chaining.
           */
          public Builder setRuleFlowGroupBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
            ruleFlowGroup_ = value;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<RuleSetNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface HumanTaskNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional int64 work_item_id = 1;</code>
         * @return Whether the workItemId field is set.
         */
        boolean hasWorkItemId();
        /**
         * <code>optional int64 work_item_id = 1;</code>
         * @return The workItemId.
         */
        long getWorkItemId();

        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        long getTimerInstanceId(int index);

        /**
         * <code>optional int64 error_handling_process_instance_id = 3;</code>
         * @return Whether the errorHandlingProcessInstanceId field is set.
         */
        boolean hasErrorHandlingProcessInstanceId();
        /**
         * <code>optional int64 error_handling_process_instance_id = 3;</code>
         * @return The errorHandlingProcessInstanceId.
         */
        long getErrorHandlingProcessInstanceId();

        /**
         * <code>optional int64 timer_instance_id_suspendUntil = 4;</code>
         * @return Whether the timerInstanceIdSuspendUntil field is set.
         */
        boolean hasTimerInstanceIdSuspendUntil();
        /**
         * <code>optional int64 timer_instance_id_suspendUntil = 4;</code>
         * @return The timerInstanceIdSuspendUntil.
         */
        long getTimerInstanceIdSuspendUntil();

        /**
         * <code>optional int32 trigger_count = 5;</code>
         * @return Whether the triggerCount field is set.
         */
        boolean hasTriggerCount();
        /**
         * <code>optional int32 trigger_count = 5;</code>
         * @return The triggerCount.
         */
        int getTriggerCount();
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode}
       */
      public static final class HumanTaskNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode)
          HumanTaskNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use HumanTaskNode.newBuilder() to construct.
        private HumanTaskNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private HumanTaskNode() {
          timerInstanceId_ = emptyLongList();
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new HumanTaskNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 8: {
                  bitField0_ |= 0x00000001;
                  workItemId_ = input.readInt64();
                  break;
                }
                case 16: {
                  if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  timerInstanceId_.addLong(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.addLong(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000002;
                  errorHandlingProcessInstanceId_ = input.readInt64();
                  break;
                }
                case 32: {
                  bitField0_ |= 0x00000004;
                  timerInstanceIdSuspendUntil_ = input.readInt64();
                  break;
                }
                case 40: {
                  bitField0_ |= 0x00000008;
                  triggerCount_ = input.readInt32();
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000002) != 0)) {
              timerInstanceId_.makeImmutable(); // C
            }
            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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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);
        }

        private int bitField0_;
        public static final int WORK_ITEM_ID_FIELD_NUMBER = 1;
        private long workItemId_;
        /**
         * <code>optional int64 work_item_id = 1;</code>
         * @return Whether the workItemId field is set.
         */
        @java.lang.Override
        public boolean hasWorkItemId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional int64 work_item_id = 1;</code>
         * @return The workItemId.
         */
        @java.lang.Override
        public long getWorkItemId() {
          return workItemId_;
        }

        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        private com.google.protobuf.Internal.LongList timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return A list containing the timerInstanceId.
         */
        @java.lang.Override
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.getLong(index);
        }

        public static final int ERROR_HANDLING_PROCESS_INSTANCE_ID_FIELD_NUMBER = 3;
        private long errorHandlingProcessInstanceId_;
        /**
         * <code>optional int64 error_handling_process_instance_id = 3;</code>
         * @return Whether the errorHandlingProcessInstanceId field is set.
         */
        @java.lang.Override
        public boolean hasErrorHandlingProcessInstanceId() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional int64 error_handling_process_instance_id = 3;</code>
         * @return The errorHandlingProcessInstanceId.
         */
        @java.lang.Override
        public long getErrorHandlingProcessInstanceId() {
          return errorHandlingProcessInstanceId_;
        }

        public static final int TIMER_INSTANCE_ID_SUSPENDUNTIL_FIELD_NUMBER = 4;
        private long timerInstanceIdSuspendUntil_;
        /**
         * <code>optional int64 timer_instance_id_suspendUntil = 4;</code>
         * @return Whether the timerInstanceIdSuspendUntil field is set.
         */
        @java.lang.Override
        public boolean hasTimerInstanceIdSuspendUntil() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional int64 timer_instance_id_suspendUntil = 4;</code>
         * @return The timerInstanceIdSuspendUntil.
         */
        @java.lang.Override
        public long getTimerInstanceIdSuspendUntil() {
          return timerInstanceIdSuspendUntil_;
        }

        public static final int TRIGGER_COUNT_FIELD_NUMBER = 5;
        private int triggerCount_;
        /**
         * <code>optional int32 trigger_count = 5;</code>
         * @return Whether the triggerCount field is set.
         */
        @java.lang.Override
        public boolean hasTriggerCount() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <code>optional int32 trigger_count = 5;</code>
         * @return The triggerCount.
         */
        @java.lang.Override
        public int getTriggerCount() {
          return triggerCount_;
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) != 0)) {
            output.writeInt64(1, workItemId_);
          }
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(2, timerInstanceId_.getLong(i));
          }
          if (((bitField0_ & 0x00000002) != 0)) {
            output.writeInt64(3, errorHandlingProcessInstanceId_);
          }
          if (((bitField0_ & 0x00000004) != 0)) {
            output.writeInt64(4, timerInstanceIdSuspendUntil_);
          }
          if (((bitField0_ & 0x00000008) != 0)) {
            output.writeInt32(5, triggerCount_);
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) != 0)) {
            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_.getLong(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          if (((bitField0_ & 0x00000002) != 0)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt64Size(3, errorHandlingProcessInstanceId_);
          }
          if (((bitField0_ & 0x00000004) != 0)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt64Size(4, timerInstanceIdSuspendUntil_);
          }
          if (((bitField0_ & 0x00000008) != 0)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(5, triggerCount_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode) obj;

          if (hasWorkItemId() != other.hasWorkItemId()) return false;
          if (hasWorkItemId()) {
            if (getWorkItemId()
                != other.getWorkItemId()) return false;
          }
          if (!getTimerInstanceIdList()
              .equals(other.getTimerInstanceIdList())) return false;
          if (hasErrorHandlingProcessInstanceId() != other.hasErrorHandlingProcessInstanceId()) return false;
          if (hasErrorHandlingProcessInstanceId()) {
            if (getErrorHandlingProcessInstanceId()
                != other.getErrorHandlingProcessInstanceId()) return false;
          }
          if (hasTimerInstanceIdSuspendUntil() != other.hasTimerInstanceIdSuspendUntil()) return false;
          if (hasTimerInstanceIdSuspendUntil()) {
            if (getTimerInstanceIdSuspendUntil()
                != other.getTimerInstanceIdSuspendUntil()) return false;
          }
          if (hasTriggerCount() != other.hasTriggerCount()) return false;
          if (hasTriggerCount()) {
            if (getTriggerCount()
                != other.getTriggerCount()) return false;
          }
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (hasWorkItemId()) {
            hash = (37 * hash) + WORK_ITEM_ID_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getWorkItemId());
          }
          if (getTimerInstanceIdCount() > 0) {
            hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + getTimerInstanceIdList().hashCode();
          }
          if (hasErrorHandlingProcessInstanceId()) {
            hash = (37 * hash) + ERROR_HANDLING_PROCESS_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getErrorHandlingProcessInstanceId());
          }
          if (hasTimerInstanceIdSuspendUntil()) {
            hash = (37 * hash) + TIMER_INSTANCE_ID_SUSPENDUNTIL_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getTimerInstanceIdSuspendUntil());
          }
          if (hasTriggerCount()) {
            hash = (37 * hash) + TRIGGER_COUNT_FIELD_NUMBER;
            hash = (53 * hash) + getTriggerCount();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            workItemId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000001);
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000002);
            errorHandlingProcessInstanceId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000004);
            timerInstanceIdSuspendUntil_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000008);
            triggerCount_ = 0;
            bitField0_ = (bitField0_ & ~0x00000010);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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) != 0)) {
              result.workItemId_ = workItemId_;
              to_bitField0_ |= 0x00000001;
            }
            if (((bitField0_ & 0x00000002) != 0)) {
              timerInstanceId_.makeImmutable();
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.timerInstanceId_ = timerInstanceId_;
            if (((from_bitField0_ & 0x00000004) != 0)) {
              result.errorHandlingProcessInstanceId_ = errorHandlingProcessInstanceId_;
              to_bitField0_ |= 0x00000002;
            }
            if (((from_bitField0_ & 0x00000008) != 0)) {
              result.timerInstanceIdSuspendUntil_ = timerInstanceIdSuspendUntil_;
              to_bitField0_ |= 0x00000004;
            }
            if (((from_bitField0_ & 0x00000010) != 0)) {
              result.triggerCount_ = triggerCount_;
              to_bitField0_ |= 0x00000008;
            }
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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();
            }
            if (other.hasErrorHandlingProcessInstanceId()) {
              setErrorHandlingProcessInstanceId(other.getErrorHandlingProcessInstanceId());
            }
            if (other.hasTimerInstanceIdSuspendUntil()) {
              setTimerInstanceIdSuspendUntil(other.getTimerInstanceIdSuspendUntil());
            }
            if (other.hasTriggerCount()) {
              setTriggerCount(other.getTriggerCount());
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private long workItemId_ ;
          /**
           * <code>optional int64 work_item_id = 1;</code>
           * @return Whether the workItemId field is set.
           */
          @java.lang.Override
          public boolean hasWorkItemId() {
            return ((bitField0_ & 0x00000001) != 0);
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           * @return The workItemId.
           */
          @java.lang.Override
          public long getWorkItemId() {
            return workItemId_;
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           * @param value The workItemId to set.
           * @return This builder for chaining.
           */
          public Builder setWorkItemId(long value) {
            bitField0_ |= 0x00000001;
            workItemId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearWorkItemId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            workItemId_ = 0L;
            onChanged();
            return this;
          }

          private com.google.protobuf.Internal.LongList timerInstanceId_ = emptyLongList();
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000002) != 0)) {
              timerInstanceId_ = mutableCopy(timerInstanceId_);
              bitField0_ |= 0x00000002;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return A list containing the timerInstanceId.
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return ((bitField0_ & 0x00000002) != 0) ?
                     java.util.Collections.unmodifiableList(timerInstanceId_) : timerInstanceId_;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return The count of timerInstanceId.
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param index The index of the element to return.
           * @return The timerInstanceId at the given index.
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.getLong(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param index The index to set the value at.
           * @param value The timerInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.setLong(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param value The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.addLong(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param values The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }

          private long errorHandlingProcessInstanceId_ ;
          /**
           * <code>optional int64 error_handling_process_instance_id = 3;</code>
           * @return Whether the errorHandlingProcessInstanceId field is set.
           */
          @java.lang.Override
          public boolean hasErrorHandlingProcessInstanceId() {
            return ((bitField0_ & 0x00000004) != 0);
          }
          /**
           * <code>optional int64 error_handling_process_instance_id = 3;</code>
           * @return The errorHandlingProcessInstanceId.
           */
          @java.lang.Override
          public long getErrorHandlingProcessInstanceId() {
            return errorHandlingProcessInstanceId_;
          }
          /**
           * <code>optional int64 error_handling_process_instance_id = 3;</code>
           * @param value The errorHandlingProcessInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setErrorHandlingProcessInstanceId(long value) {
            bitField0_ |= 0x00000004;
            errorHandlingProcessInstanceId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 error_handling_process_instance_id = 3;</code>
           * @return This builder for chaining.
           */
          public Builder clearErrorHandlingProcessInstanceId() {
            bitField0_ = (bitField0_ & ~0x00000004);
            errorHandlingProcessInstanceId_ = 0L;
            onChanged();
            return this;
          }

          private long timerInstanceIdSuspendUntil_ ;
          /**
           * <code>optional int64 timer_instance_id_suspendUntil = 4;</code>
           * @return Whether the timerInstanceIdSuspendUntil field is set.
           */
          @java.lang.Override
          public boolean hasTimerInstanceIdSuspendUntil() {
            return ((bitField0_ & 0x00000008) != 0);
          }
          /**
           * <code>optional int64 timer_instance_id_suspendUntil = 4;</code>
           * @return The timerInstanceIdSuspendUntil.
           */
          @java.lang.Override
          public long getTimerInstanceIdSuspendUntil() {
            return timerInstanceIdSuspendUntil_;
          }
          /**
           * <code>optional int64 timer_instance_id_suspendUntil = 4;</code>
           * @param value The timerInstanceIdSuspendUntil to set.
           * @return This builder for chaining.
           */
          public Builder setTimerInstanceIdSuspendUntil(long value) {
            bitField0_ |= 0x00000008;
            timerInstanceIdSuspendUntil_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 timer_instance_id_suspendUntil = 4;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerInstanceIdSuspendUntil() {
            bitField0_ = (bitField0_ & ~0x00000008);
            timerInstanceIdSuspendUntil_ = 0L;
            onChanged();
            return this;
          }

          private int triggerCount_ ;
          /**
           * <code>optional int32 trigger_count = 5;</code>
           * @return Whether the triggerCount field is set.
           */
          @java.lang.Override
          public boolean hasTriggerCount() {
            return ((bitField0_ & 0x00000010) != 0);
          }
          /**
           * <code>optional int32 trigger_count = 5;</code>
           * @return The triggerCount.
           */
          @java.lang.Override
          public int getTriggerCount() {
            return triggerCount_;
          }
          /**
           * <code>optional int32 trigger_count = 5;</code>
           * @param value The triggerCount to set.
           * @return This builder for chaining.
           */
          public Builder setTriggerCount(int value) {
            bitField0_ |= 0x00000010;
            triggerCount_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int32 trigger_count = 5;</code>
           * @return This builder for chaining.
           */
          public Builder clearTriggerCount() {
            bitField0_ = (bitField0_ & ~0x00000010);
            triggerCount_ = 0;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<HumanTaskNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface WorkItemNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional int64 work_item_id = 1;</code>
         * @return Whether the workItemId field is set.
         */
        boolean hasWorkItemId();
        /**
         * <code>optional int64 work_item_id = 1;</code>
         * @return The workItemId.
         */
        long getWorkItemId();

        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        long getTimerInstanceId(int index);

        /**
         * <code>optional int64 error_handling_process_instance_id = 3;</code>
         * @return Whether the errorHandlingProcessInstanceId field is set.
         */
        boolean hasErrorHandlingProcessInstanceId();
        /**
         * <code>optional int64 error_handling_process_instance_id = 3;</code>
         * @return The errorHandlingProcessInstanceId.
         */
        long getErrorHandlingProcessInstanceId();

        /**
         * <code>optional int32 trigger_count = 4;</code>
         * @return Whether the triggerCount field is set.
         */
        boolean hasTriggerCount();
        /**
         * <code>optional int32 trigger_count = 4;</code>
         * @return The triggerCount.
         */
        int getTriggerCount();
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode}
       */
      public static final class WorkItemNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode)
          WorkItemNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use WorkItemNode.newBuilder() to construct.
        private WorkItemNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private WorkItemNode() {
          timerInstanceId_ = emptyLongList();
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new WorkItemNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 8: {
                  bitField0_ |= 0x00000001;
                  workItemId_ = input.readInt64();
                  break;
                }
                case 16: {
                  if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  timerInstanceId_.addLong(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.addLong(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000002;
                  errorHandlingProcessInstanceId_ = input.readInt64();
                  break;
                }
                case 32: {
                  bitField0_ |= 0x00000004;
                  triggerCount_ = input.readInt32();
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000002) != 0)) {
              timerInstanceId_.makeImmutable(); // C
            }
            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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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);
        }

        private int bitField0_;
        public static final int WORK_ITEM_ID_FIELD_NUMBER = 1;
        private long workItemId_;
        /**
         * <code>optional int64 work_item_id = 1;</code>
         * @return Whether the workItemId field is set.
         */
        @java.lang.Override
        public boolean hasWorkItemId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional int64 work_item_id = 1;</code>
         * @return The workItemId.
         */
        @java.lang.Override
        public long getWorkItemId() {
          return workItemId_;
        }

        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        private com.google.protobuf.Internal.LongList timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return A list containing the timerInstanceId.
         */
        @java.lang.Override
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.getLong(index);
        }

        public static final int ERROR_HANDLING_PROCESS_INSTANCE_ID_FIELD_NUMBER = 3;
        private long errorHandlingProcessInstanceId_;
        /**
         * <code>optional int64 error_handling_process_instance_id = 3;</code>
         * @return Whether the errorHandlingProcessInstanceId field is set.
         */
        @java.lang.Override
        public boolean hasErrorHandlingProcessInstanceId() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional int64 error_handling_process_instance_id = 3;</code>
         * @return The errorHandlingProcessInstanceId.
         */
        @java.lang.Override
        public long getErrorHandlingProcessInstanceId() {
          return errorHandlingProcessInstanceId_;
        }

        public static final int TRIGGER_COUNT_FIELD_NUMBER = 4;
        private int triggerCount_;
        /**
         * <code>optional int32 trigger_count = 4;</code>
         * @return Whether the triggerCount field is set.
         */
        @java.lang.Override
        public boolean hasTriggerCount() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional int32 trigger_count = 4;</code>
         * @return The triggerCount.
         */
        @java.lang.Override
        public int getTriggerCount() {
          return triggerCount_;
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) != 0)) {
            output.writeInt64(1, workItemId_);
          }
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(2, timerInstanceId_.getLong(i));
          }
          if (((bitField0_ & 0x00000002) != 0)) {
            output.writeInt64(3, errorHandlingProcessInstanceId_);
          }
          if (((bitField0_ & 0x00000004) != 0)) {
            output.writeInt32(4, triggerCount_);
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) != 0)) {
            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_.getLong(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          if (((bitField0_ & 0x00000002) != 0)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt64Size(3, errorHandlingProcessInstanceId_);
          }
          if (((bitField0_ & 0x00000004) != 0)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(4, triggerCount_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode) obj;

          if (hasWorkItemId() != other.hasWorkItemId()) return false;
          if (hasWorkItemId()) {
            if (getWorkItemId()
                != other.getWorkItemId()) return false;
          }
          if (!getTimerInstanceIdList()
              .equals(other.getTimerInstanceIdList())) return false;
          if (hasErrorHandlingProcessInstanceId() != other.hasErrorHandlingProcessInstanceId()) return false;
          if (hasErrorHandlingProcessInstanceId()) {
            if (getErrorHandlingProcessInstanceId()
                != other.getErrorHandlingProcessInstanceId()) return false;
          }
          if (hasTriggerCount() != other.hasTriggerCount()) return false;
          if (hasTriggerCount()) {
            if (getTriggerCount()
                != other.getTriggerCount()) return false;
          }
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (hasWorkItemId()) {
            hash = (37 * hash) + WORK_ITEM_ID_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getWorkItemId());
          }
          if (getTimerInstanceIdCount() > 0) {
            hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + getTimerInstanceIdList().hashCode();
          }
          if (hasErrorHandlingProcessInstanceId()) {
            hash = (37 * hash) + ERROR_HANDLING_PROCESS_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getErrorHandlingProcessInstanceId());
          }
          if (hasTriggerCount()) {
            hash = (37 * hash) + TRIGGER_COUNT_FIELD_NUMBER;
            hash = (53 * hash) + getTriggerCount();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            workItemId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000001);
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000002);
            errorHandlingProcessInstanceId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000004);
            triggerCount_ = 0;
            bitField0_ = (bitField0_ & ~0x00000008);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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) != 0)) {
              result.workItemId_ = workItemId_;
              to_bitField0_ |= 0x00000001;
            }
            if (((bitField0_ & 0x00000002) != 0)) {
              timerInstanceId_.makeImmutable();
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.timerInstanceId_ = timerInstanceId_;
            if (((from_bitField0_ & 0x00000004) != 0)) {
              result.errorHandlingProcessInstanceId_ = errorHandlingProcessInstanceId_;
              to_bitField0_ |= 0x00000002;
            }
            if (((from_bitField0_ & 0x00000008) != 0)) {
              result.triggerCount_ = triggerCount_;
              to_bitField0_ |= 0x00000004;
            }
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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();
            }
            if (other.hasErrorHandlingProcessInstanceId()) {
              setErrorHandlingProcessInstanceId(other.getErrorHandlingProcessInstanceId());
            }
            if (other.hasTriggerCount()) {
              setTriggerCount(other.getTriggerCount());
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private long workItemId_ ;
          /**
           * <code>optional int64 work_item_id = 1;</code>
           * @return Whether the workItemId field is set.
           */
          @java.lang.Override
          public boolean hasWorkItemId() {
            return ((bitField0_ & 0x00000001) != 0);
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           * @return The workItemId.
           */
          @java.lang.Override
          public long getWorkItemId() {
            return workItemId_;
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           * @param value The workItemId to set.
           * @return This builder for chaining.
           */
          public Builder setWorkItemId(long value) {
            bitField0_ |= 0x00000001;
            workItemId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 work_item_id = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearWorkItemId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            workItemId_ = 0L;
            onChanged();
            return this;
          }

          private com.google.protobuf.Internal.LongList timerInstanceId_ = emptyLongList();
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000002) != 0)) {
              timerInstanceId_ = mutableCopy(timerInstanceId_);
              bitField0_ |= 0x00000002;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return A list containing the timerInstanceId.
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return ((bitField0_ & 0x00000002) != 0) ?
                     java.util.Collections.unmodifiableList(timerInstanceId_) : timerInstanceId_;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return The count of timerInstanceId.
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param index The index of the element to return.
           * @return The timerInstanceId at the given index.
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.getLong(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param index The index to set the value at.
           * @param value The timerInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.setLong(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param value The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.addLong(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param values The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }

          private long errorHandlingProcessInstanceId_ ;
          /**
           * <code>optional int64 error_handling_process_instance_id = 3;</code>
           * @return Whether the errorHandlingProcessInstanceId field is set.
           */
          @java.lang.Override
          public boolean hasErrorHandlingProcessInstanceId() {
            return ((bitField0_ & 0x00000004) != 0);
          }
          /**
           * <code>optional int64 error_handling_process_instance_id = 3;</code>
           * @return The errorHandlingProcessInstanceId.
           */
          @java.lang.Override
          public long getErrorHandlingProcessInstanceId() {
            return errorHandlingProcessInstanceId_;
          }
          /**
           * <code>optional int64 error_handling_process_instance_id = 3;</code>
           * @param value The errorHandlingProcessInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setErrorHandlingProcessInstanceId(long value) {
            bitField0_ |= 0x00000004;
            errorHandlingProcessInstanceId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 error_handling_process_instance_id = 3;</code>
           * @return This builder for chaining.
           */
          public Builder clearErrorHandlingProcessInstanceId() {
            bitField0_ = (bitField0_ & ~0x00000004);
            errorHandlingProcessInstanceId_ = 0L;
            onChanged();
            return this;
          }

          private int triggerCount_ ;
          /**
           * <code>optional int32 trigger_count = 4;</code>
           * @return Whether the triggerCount field is set.
           */
          @java.lang.Override
          public boolean hasTriggerCount() {
            return ((bitField0_ & 0x00000008) != 0);
          }
          /**
           * <code>optional int32 trigger_count = 4;</code>
           * @return The triggerCount.
           */
          @java.lang.Override
          public int getTriggerCount() {
            return triggerCount_;
          }
          /**
           * <code>optional int32 trigger_count = 4;</code>
           * @param value The triggerCount to set.
           * @return This builder for chaining.
           */
          public Builder setTriggerCount(int value) {
            bitField0_ |= 0x00000008;
            triggerCount_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int32 trigger_count = 4;</code>
           * @return This builder for chaining.
           */
          public Builder clearTriggerCount() {
            bitField0_ = (bitField0_ & ~0x00000008);
            triggerCount_ = 0;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<WorkItemNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface SubProcessNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional int64 process_instance_id = 1;</code>
         * @return Whether the processInstanceId field is set.
         */
        boolean hasProcessInstanceId();
        /**
         * <code>optional int64 process_instance_id = 1;</code>
         * @return The processInstanceId.
         */
        long getProcessInstanceId();

        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode}
       */
      public static final class SubProcessNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode)
          SubProcessNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use SubProcessNode.newBuilder() to construct.
        private SubProcessNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private SubProcessNode() {
          timerInstanceId_ = emptyLongList();
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new SubProcessNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 8: {
                  bitField0_ |= 0x00000001;
                  processInstanceId_ = input.readInt64();
                  break;
                }
                case 16: {
                  if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  timerInstanceId_.addLong(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.addLong(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000002) != 0)) {
              timerInstanceId_.makeImmutable(); // C
            }
            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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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);
        }

        private int bitField0_;
        public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 1;
        private long processInstanceId_;
        /**
         * <code>optional int64 process_instance_id = 1;</code>
         * @return Whether the processInstanceId field is set.
         */
        @java.lang.Override
        public boolean hasProcessInstanceId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional int64 process_instance_id = 1;</code>
         * @return The processInstanceId.
         */
        @java.lang.Override
        public long getProcessInstanceId() {
          return processInstanceId_;
        }

        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        private com.google.protobuf.Internal.LongList timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return A list containing the timerInstanceId.
         */
        @java.lang.Override
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.getLong(index);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) != 0)) {
            output.writeInt64(1, processInstanceId_);
          }
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(2, timerInstanceId_.getLong(i));
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) != 0)) {
            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_.getLong(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode) obj;

          if (hasProcessInstanceId() != other.hasProcessInstanceId()) return false;
          if (hasProcessInstanceId()) {
            if (getProcessInstanceId()
                != other.getProcessInstanceId()) return false;
          }
          if (!getTimerInstanceIdList()
              .equals(other.getTimerInstanceIdList())) return false;
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (hasProcessInstanceId()) {
            hash = (37 * hash) + PROCESS_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getProcessInstanceId());
          }
          if (getTimerInstanceIdCount() > 0) {
            hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + getTimerInstanceIdList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            processInstanceId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000001);
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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) != 0)) {
              result.processInstanceId_ = processInstanceId_;
              to_bitField0_ |= 0x00000001;
            }
            if (((bitField0_ & 0x00000002) != 0)) {
              timerInstanceId_.makeImmutable();
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.timerInstanceId_ = timerInstanceId_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private long processInstanceId_ ;
          /**
           * <code>optional int64 process_instance_id = 1;</code>
           * @return Whether the processInstanceId field is set.
           */
          @java.lang.Override
          public boolean hasProcessInstanceId() {
            return ((bitField0_ & 0x00000001) != 0);
          }
          /**
           * <code>optional int64 process_instance_id = 1;</code>
           * @return The processInstanceId.
           */
          @java.lang.Override
          public long getProcessInstanceId() {
            return processInstanceId_;
          }
          /**
           * <code>optional int64 process_instance_id = 1;</code>
           * @param value The processInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setProcessInstanceId(long value) {
            bitField0_ |= 0x00000001;
            processInstanceId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 process_instance_id = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearProcessInstanceId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            processInstanceId_ = 0L;
            onChanged();
            return this;
          }

          private com.google.protobuf.Internal.LongList timerInstanceId_ = emptyLongList();
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000002) != 0)) {
              timerInstanceId_ = mutableCopy(timerInstanceId_);
              bitField0_ |= 0x00000002;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return A list containing the timerInstanceId.
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return ((bitField0_ & 0x00000002) != 0) ?
                     java.util.Collections.unmodifiableList(timerInstanceId_) : timerInstanceId_;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return The count of timerInstanceId.
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param index The index of the element to return.
           * @return The timerInstanceId at the given index.
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.getLong(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param index The index to set the value at.
           * @param value The timerInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.setLong(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param value The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.addLong(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param values The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<SubProcessNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface MilestoneNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode}
       */
      public static final class MilestoneNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode)
          MilestoneNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use MilestoneNode.newBuilder() to construct.
        private MilestoneNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private MilestoneNode() {
          timerInstanceId_ = emptyLongList();
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new MilestoneNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 8: {
                  if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  timerInstanceId_.addLong(input.readInt64());
                  break;
                }
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.addLong(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) != 0)) {
              timerInstanceId_.makeImmutable(); // C
            }
            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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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 final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        private com.google.protobuf.Internal.LongList timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return A list containing the timerInstanceId.
         */
        @java.lang.Override
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.getLong(index);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(1, timerInstanceId_.getLong(i));
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          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_.getLong(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode) obj;

          if (!getTimerInstanceIdList()
              .equals(other.getTimerInstanceIdList())) return false;
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getTimerInstanceIdCount() > 0) {
            hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + getTimerInstanceIdList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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) != 0)) {
              timerInstanceId_.makeImmutable();
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.timerInstanceId_ = timerInstanceId_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private com.google.protobuf.Internal.LongList timerInstanceId_ = emptyLongList();
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000001) != 0)) {
              timerInstanceId_ = mutableCopy(timerInstanceId_);
              bitField0_ |= 0x00000001;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @return A list containing the timerInstanceId.
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return ((bitField0_ & 0x00000001) != 0) ?
                     java.util.Collections.unmodifiableList(timerInstanceId_) : timerInstanceId_;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @return The count of timerInstanceId.
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param index The index of the element to return.
           * @return The timerInstanceId at the given index.
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.getLong(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param index The index to set the value at.
           * @param value The timerInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.setLong(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param value The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.addLong(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param values The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<MilestoneNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface EventNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode)
          com.google.protobuf.MessageOrBuilder {
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode}
       */
      public static final class EventNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode)
          EventNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use EventNode.newBuilder() to construct.
        private EventNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private EventNode() {
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new EventNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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 (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode) obj;

          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<EventNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface TimerNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional int64 timer_id = 1;</code>
         * @return Whether the timerId field is set.
         */
        boolean hasTimerId();
        /**
         * <code>optional int64 timer_id = 1;</code>
         * @return The timerId.
         */
        long getTimerId();
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode}
       */
      public static final class TimerNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode)
          TimerNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use TimerNode.newBuilder() to construct.
        private TimerNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private TimerNode() {
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new TimerNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 8: {
                  bitField0_ |= 0x00000001;
                  timerId_ = input.readInt64();
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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);
        }

        private int bitField0_;
        public static final int TIMER_ID_FIELD_NUMBER = 1;
        private long timerId_;
        /**
         * <code>optional int64 timer_id = 1;</code>
         * @return Whether the timerId field is set.
         */
        @java.lang.Override
        public boolean hasTimerId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional int64 timer_id = 1;</code>
         * @return The timerId.
         */
        @java.lang.Override
        public long getTimerId() {
          return timerId_;
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) != 0)) {
            output.writeInt64(1, timerId_);
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) != 0)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt64Size(1, timerId_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode) obj;

          if (hasTimerId() != other.hasTimerId()) return false;
          if (hasTimerId()) {
            if (getTimerId()
                != other.getTimerId()) return false;
          }
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (hasTimerId()) {
            hash = (37 * hash) + TIMER_ID_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getTimerId());
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            timerId_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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) != 0)) {
              result.timerId_ = timerId_;
              to_bitField0_ |= 0x00000001;
            }
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private long timerId_ ;
          /**
           * <code>optional int64 timer_id = 1;</code>
           * @return Whether the timerId field is set.
           */
          @java.lang.Override
          public boolean hasTimerId() {
            return ((bitField0_ & 0x00000001) != 0);
          }
          /**
           * <code>optional int64 timer_id = 1;</code>
           * @return The timerId.
           */
          @java.lang.Override
          public long getTimerId() {
            return timerId_;
          }
          /**
           * <code>optional int64 timer_id = 1;</code>
           * @param value The timerId to set.
           * @return This builder for chaining.
           */
          public Builder setTimerId(long value) {
            bitField0_ |= 0x00000001;
            timerId_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int64 timer_id = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            timerId_ = 0L;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<TimerNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface JoinNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <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.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode)
          JoinNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use JoinNode.newBuilder() to construct.
        private JoinNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private JoinNode() {
          trigger_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new JoinNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 10: {
                  if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                    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;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) != 0)) {
              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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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 interface JoinTriggerOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger)
            com.google.protobuf.MessageOrBuilder {

          /**
           * <code>optional int64 node_id = 1;</code>
           * @return Whether the nodeId field is set.
           */
          boolean hasNodeId();
          /**
           * <code>optional int64 node_id = 1;</code>
           * @return The nodeId.
           */
          long getNodeId();

          /**
           * <code>optional int32 counter = 2;</code>
           * @return Whether the counter field is set.
           */
          boolean hasCounter();
          /**
           * <code>optional int32 counter = 2;</code>
           * @return The counter.
           */
          int getCounter();
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger}
         */
        public static final class JoinTrigger extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger)
            JoinTriggerOrBuilder {
        private static final long serialVersionUID = 0L;
          // Use JoinTrigger.newBuilder() to construct.
          private JoinTrigger(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
          }
          private JoinTrigger() {
          }

          @java.lang.Override
          @SuppressWarnings({"unused"})
          protected java.lang.Object newInstance(
              UnusedPrivateParameter unused) {
            return new JoinTrigger();
          }

          @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 {
            this();
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            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;
                  case 8: {
                    bitField0_ |= 0x00000001;
                    nodeId_ = input.readInt64();
                    break;
                  }
                  case 16: {
                    bitField0_ |= 0x00000002;
                    counter_ = input.readInt32();
                    break;
                  }
                  default: {
                    if (!parseUnknownField(
                        input, unknownFields, extensionRegistry, tag)) {
                      done = true;
                    }
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(this);
            } catch (com.google.protobuf.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(
                  e).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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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);
          }

          private int bitField0_;
          public static final int NODE_ID_FIELD_NUMBER = 1;
          private long nodeId_;
          /**
           * <code>optional int64 node_id = 1;</code>
           * @return Whether the nodeId field is set.
           */
          @java.lang.Override
          public boolean hasNodeId() {
            return ((bitField0_ & 0x00000001) != 0);
          }
          /**
           * <code>optional int64 node_id = 1;</code>
           * @return The nodeId.
           */
          @java.lang.Override
          public long getNodeId() {
            return nodeId_;
          }

          public static final int COUNTER_FIELD_NUMBER = 2;
          private int counter_;
          /**
           * <code>optional int32 counter = 2;</code>
           * @return Whether the counter field is set.
           */
          @java.lang.Override
          public boolean hasCounter() {
            return ((bitField0_ & 0x00000002) != 0);
          }
          /**
           * <code>optional int32 counter = 2;</code>
           * @return The counter.
           */
          @java.lang.Override
          public int getCounter() {
            return counter_;
          }

          private byte memoizedIsInitialized = -1;
          @java.lang.Override
          public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            memoizedIsInitialized = 1;
            return true;
          }

          @java.lang.Override
          public void writeTo(com.google.protobuf.CodedOutputStream output)
                              throws java.io.IOException {
            if (((bitField0_ & 0x00000001) != 0)) {
              output.writeInt64(1, nodeId_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
              output.writeInt32(2, counter_);
            }
            unknownFields.writeTo(output);
          }

          @java.lang.Override
          public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
              size += com.google.protobuf.CodedOutputStream
                .computeInt64Size(1, nodeId_);
            }
            if (((bitField0_ & 0x00000002) != 0)) {
              size += com.google.protobuf.CodedOutputStream
                .computeInt32Size(2, counter_);
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
          }

          @java.lang.Override
          public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
             return true;
            }
            if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger)) {
              return super.equals(obj);
            }
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger) obj;

            if (hasNodeId() != other.hasNodeId()) return false;
            if (hasNodeId()) {
              if (getNodeId()
                  != other.getNodeId()) return false;
            }
            if (hasCounter() != other.hasCounter()) return false;
            if (hasCounter()) {
              if (getCounter()
                  != other.getCounter()) return false;
            }
            if (!unknownFields.equals(other.unknownFields)) return false;
            return true;
          }

          @java.lang.Override
          public int hashCode() {
            if (memoizedHashCode != 0) {
              return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasNodeId()) {
              hash = (37 * hash) + NODE_ID_FIELD_NUMBER;
              hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                  getNodeId());
            }
            if (hasCounter()) {
              hash = (37 * hash) + COUNTER_FIELD_NUMBER;
              hash = (53 * hash) + getCounter();
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
          }

          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              java.nio.ByteBuffer data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              java.nio.ByteBuffer 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(
              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 com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
          }
          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }

          @java.lang.Override
          public Builder newBuilderForType() { return newBuilder(); }
          public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
          }
          public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
          }
          @java.lang.Override
          public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
          }

          @java.lang.Override
          protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
              // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger)
              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;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
              super(parent);
              maybeForceBuilderInitialization();
            }
            private void maybeForceBuilderInitialization() {
              if (com.google.protobuf.GeneratedMessageV3
                      .alwaysUseFieldBuilders) {
              }
            }
            @java.lang.Override
            public Builder clear() {
              super.clear();
              nodeId_ = 0L;
              bitField0_ = (bitField0_ & ~0x00000001);
              counter_ = 0;
              bitField0_ = (bitField0_ & ~0x00000002);
              return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
              return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_descriptor;
            }

            @java.lang.Override
            public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger getDefaultInstanceForType() {
              return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger.getDefaultInstance();
            }

            @java.lang.Override
            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;
            }

            @java.lang.Override
            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) != 0)) {
                result.nodeId_ = nodeId_;
                to_bitField0_ |= 0x00000001;
              }
              if (((from_bitField0_ & 0x00000002) != 0)) {
                result.counter_ = counter_;
                to_bitField0_ |= 0x00000002;
              }
              result.bitField0_ = to_bitField0_;
              onBuilt();
              return result;
            }

            @java.lang.Override
            public Builder clone() {
              return super.clone();
            }
            @java.lang.Override
            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return super.setField(field, value);
            }
            @java.lang.Override
            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
              return super.clearField(field);
            }
            @java.lang.Override
            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
              return super.clearOneof(oneof);
            }
            @java.lang.Override
            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, java.lang.Object value) {
              return super.setRepeatedField(field, index, value);
            }
            @java.lang.Override
            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return super.addRepeatedField(field, value);
            }
            @java.lang.Override
            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.unknownFields);
              onChanged();
              return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
              return true;
            }

            @java.lang.Override
            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.unwrapIOException();
              } finally {
                if (parsedMessage != null) {
                  mergeFrom(parsedMessage);
                }
              }
              return this;
            }
            private int bitField0_;

            private long nodeId_ ;
            /**
             * <code>optional int64 node_id = 1;</code>
             * @return Whether the nodeId field is set.
             */
            @java.lang.Override
            public boolean hasNodeId() {
              return ((bitField0_ & 0x00000001) != 0);
            }
            /**
             * <code>optional int64 node_id = 1;</code>
             * @return The nodeId.
             */
            @java.lang.Override
            public long getNodeId() {
              return nodeId_;
            }
            /**
             * <code>optional int64 node_id = 1;</code>
             * @param value The nodeId to set.
             * @return This builder for chaining.
             */
            public Builder setNodeId(long value) {
              bitField0_ |= 0x00000001;
              nodeId_ = value;
              onChanged();
              return this;
            }
            /**
             * <code>optional int64 node_id = 1;</code>
             * @return This builder for chaining.
             */
            public Builder clearNodeId() {
              bitField0_ = (bitField0_ & ~0x00000001);
              nodeId_ = 0L;
              onChanged();
              return this;
            }

            private int counter_ ;
            /**
             * <code>optional int32 counter = 2;</code>
             * @return Whether the counter field is set.
             */
            @java.lang.Override
            public boolean hasCounter() {
              return ((bitField0_ & 0x00000002) != 0);
            }
            /**
             * <code>optional int32 counter = 2;</code>
             * @return The counter.
             */
            @java.lang.Override
            public int getCounter() {
              return counter_;
            }
            /**
             * <code>optional int32 counter = 2;</code>
             * @param value The counter to set.
             * @return This builder for chaining.
             */
            public Builder setCounter(int value) {
              bitField0_ |= 0x00000002;
              counter_ = value;
              onChanged();
              return this;
            }
            /**
             * <code>optional int32 counter = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearCounter() {
              bitField0_ = (bitField0_ & ~0x00000002);
              counter_ = 0;
              onChanged();
              return this;
            }
            @java.lang.Override
            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.mergeUnknownFields(unknownFields);
            }


            // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger)
          }

          // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger)
          private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger DEFAULT_INSTANCE;
          static {
            DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger();
          }

          public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger getDefaultInstance() {
            return DEFAULT_INSTANCE;
          }

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

          public static com.google.protobuf.Parser<JoinTrigger> parser() {
            return PARSER;
          }

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

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
          }

        }

        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>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        public int getTriggerCount() {
          return trigger_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger trigger = 1;</code>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTriggerOrBuilder getTriggerOrBuilder(
            int index) {
          return trigger_.get(index);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          for (int i = 0; i < trigger_.size(); i++) {
            output.writeMessage(1, trigger_.get(i));
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          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 += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode) obj;

          if (!getTriggerList()
              .equals(other.getTriggerList())) return false;
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getTriggerCount() > 0) {
            hash = (37 * hash) + TRIGGER_FIELD_NUMBER;
            hash = (53 * hash) + getTriggerList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
              getTriggerFieldBuilder();
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            if (triggerBuilder_ == null) {
              trigger_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              triggerBuilder_.clear();
            }
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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) != 0)) {
                trigger_ = java.util.Collections.unmodifiableList(trigger_);
                bitField0_ = (bitField0_ & ~0x00000001);
              }
              result.trigger_ = trigger_;
            } else {
              result.trigger_ = triggerBuilder_.build();
            }
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getTriggerFieldBuilder() : null;
                } else {
                  triggerBuilder_.addAllMessages(other.trigger_);
                }
              }
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger> trigger_ =
            java.util.Collections.emptyList();
          private void ensureTriggerIsMutable() {
            if (!((bitField0_ & 0x00000001) != 0)) {
              trigger_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.JoinTrigger>(trigger_);
              bitField0_ |= 0x00000001;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              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();
              com.google.protobuf.AbstractMessageLite.Builder.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.RepeatedFieldBuilderV3<
              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.RepeatedFieldBuilderV3<
                  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) != 0),
                      getParentForChildren(),
                      isClean());
              trigger_ = null;
            }
            return triggerBuilder_;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<JoinNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface StateNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode}
       */
      public static final class StateNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode)
          StateNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use StateNode.newBuilder() to construct.
        private StateNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private StateNode() {
          timerInstanceId_ = emptyLongList();
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new StateNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 8: {
                  if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  timerInstanceId_.addLong(input.readInt64());
                  break;
                }
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.addLong(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) != 0)) {
              timerInstanceId_.makeImmutable(); // C
            }
            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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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 final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        private com.google.protobuf.Internal.LongList timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return A list containing the timerInstanceId.
         */
        @java.lang.Override
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 1;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.getLong(index);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(1, timerInstanceId_.getLong(i));
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          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_.getLong(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode) obj;

          if (!getTimerInstanceIdList()
              .equals(other.getTimerInstanceIdList())) return false;
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getTimerInstanceIdCount() > 0) {
            hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + getTimerInstanceIdList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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) != 0)) {
              timerInstanceId_.makeImmutable();
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.timerInstanceId_ = timerInstanceId_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private com.google.protobuf.Internal.LongList timerInstanceId_ = emptyLongList();
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000001) != 0)) {
              timerInstanceId_ = mutableCopy(timerInstanceId_);
              bitField0_ |= 0x00000001;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @return A list containing the timerInstanceId.
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return ((bitField0_ & 0x00000001) != 0) ?
                     java.util.Collections.unmodifiableList(timerInstanceId_) : timerInstanceId_;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @return The count of timerInstanceId.
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param index The index of the element to return.
           * @return The timerInstanceId at the given index.
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.getLong(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param index The index to set the value at.
           * @param value The timerInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.setLong(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param value The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.addLong(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @param values The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<StateNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface CompositeContextNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        long getTimerInstanceId(int index);

        /**
         * <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);

        /**
         * <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);

        /**
         * <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);

        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> 
            getIterationLevelsList();
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getIterationLevels(int index);
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        int getIterationLevelsCount();
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
            getIterationLevelsOrBuilderList();
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder getIterationLevelsOrBuilder(
            int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode}
       */
      public static final class CompositeContextNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode)
          CompositeContextNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use CompositeContextNode.newBuilder() to construct.
        private CompositeContextNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private CompositeContextNode() {
          timerInstanceId_ = emptyLongList();
          variable_ = java.util.Collections.emptyList();
          nodeInstance_ = java.util.Collections.emptyList();
          exclusiveGroup_ = java.util.Collections.emptyList();
          iterationLevels_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new CompositeContextNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 16: {
                  if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  timerInstanceId_.addLong(input.readInt64());
                  break;
                }
                case 18: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.addLong(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 26: {
                  if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                    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) != 0)) {
                    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) != 0)) {
                    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;
                }
                case 50: {
                  if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                    iterationLevels_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel>();
                    mutable_bitField0_ |= 0x00000010;
                  }
                  iterationLevels_.add(
                      input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.PARSER, extensionRegistry));
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) != 0)) {
              timerInstanceId_.makeImmutable(); // C
            }
            if (((mutable_bitField0_ & 0x00000002) != 0)) {
              variable_ = java.util.Collections.unmodifiableList(variable_);
            }
            if (((mutable_bitField0_ & 0x00000004) != 0)) {
              nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
            }
            if (((mutable_bitField0_ & 0x00000008) != 0)) {
              exclusiveGroup_ = java.util.Collections.unmodifiableList(exclusiveGroup_);
            }
            if (((mutable_bitField0_ & 0x00000010) != 0)) {
              iterationLevels_ = java.util.Collections.unmodifiableList(iterationLevels_);
            }
            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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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 final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        private com.google.protobuf.Internal.LongList timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return A list containing the timerInstanceId.
         */
        @java.lang.Override
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 2;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.getLong(index);
        }

        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>
         */
        @java.lang.Override
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
          return variable_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        @java.lang.Override
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
            getVariableOrBuilderList() {
          return variable_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        @java.lang.Override
        public int getVariableCount() {
          return variable_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
          return variable_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 3;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
            int index) {
          return variable_.get(index);
        }

        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>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        public int getNodeInstanceCount() {
          return nodeInstance_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 4;</code>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
            int index) {
          return nodeInstance_.get(index);
        }

        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>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        public int getExclusiveGroupCount() {
          return exclusiveGroup_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 5;</code>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
            int index) {
          return exclusiveGroup_.get(index);
        }

        public static final int ITERATIONLEVELS_FIELD_NUMBER = 6;
        private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> iterationLevels_;
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        @java.lang.Override
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> getIterationLevelsList() {
          return iterationLevels_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        @java.lang.Override
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
            getIterationLevelsOrBuilderList() {
          return iterationLevels_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        @java.lang.Override
        public int getIterationLevelsCount() {
          return iterationLevels_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getIterationLevels(int index) {
          return iterationLevels_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder getIterationLevelsOrBuilder(
            int index) {
          return iterationLevels_.get(index);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(2, timerInstanceId_.getLong(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));
          }
          for (int i = 0; i < iterationLevels_.size(); i++) {
            output.writeMessage(6, iterationLevels_.get(i));
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          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_.getLong(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));
          }
          for (int i = 0; i < iterationLevels_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(6, iterationLevels_.get(i));
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode) obj;

          if (!getTimerInstanceIdList()
              .equals(other.getTimerInstanceIdList())) return false;
          if (!getVariableList()
              .equals(other.getVariableList())) return false;
          if (!getNodeInstanceList()
              .equals(other.getNodeInstanceList())) return false;
          if (!getExclusiveGroupList()
              .equals(other.getExclusiveGroupList())) return false;
          if (!getIterationLevelsList()
              .equals(other.getIterationLevelsList())) return false;
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getTimerInstanceIdCount() > 0) {
            hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + getTimerInstanceIdList().hashCode();
          }
          if (getVariableCount() > 0) {
            hash = (37 * hash) + VARIABLE_FIELD_NUMBER;
            hash = (53 * hash) + getVariableList().hashCode();
          }
          if (getNodeInstanceCount() > 0) {
            hash = (37 * hash) + NODE_INSTANCE_FIELD_NUMBER;
            hash = (53 * hash) + getNodeInstanceList().hashCode();
          }
          if (getExclusiveGroupCount() > 0) {
            hash = (37 * hash) + EXCLUSIVE_GROUP_FIELD_NUMBER;
            hash = (53 * hash) + getExclusiveGroupList().hashCode();
          }
          if (getIterationLevelsCount() > 0) {
            hash = (37 * hash) + ITERATIONLEVELS_FIELD_NUMBER;
            hash = (53 * hash) + getIterationLevelsList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
              getVariableFieldBuilder();
              getNodeInstanceFieldBuilder();
              getExclusiveGroupFieldBuilder();
              getIterationLevelsFieldBuilder();
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            timerInstanceId_ = emptyLongList();
            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();
            }
            if (iterationLevelsBuilder_ == null) {
              iterationLevels_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              iterationLevelsBuilder_.clear();
            }
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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) != 0)) {
              timerInstanceId_.makeImmutable();
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.timerInstanceId_ = timerInstanceId_;
            if (variableBuilder_ == null) {
              if (((bitField0_ & 0x00000002) != 0)) {
                variable_ = java.util.Collections.unmodifiableList(variable_);
                bitField0_ = (bitField0_ & ~0x00000002);
              }
              result.variable_ = variable_;
            } else {
              result.variable_ = variableBuilder_.build();
            }
            if (nodeInstanceBuilder_ == null) {
              if (((bitField0_ & 0x00000004) != 0)) {
                nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
                bitField0_ = (bitField0_ & ~0x00000004);
              }
              result.nodeInstance_ = nodeInstance_;
            } else {
              result.nodeInstance_ = nodeInstanceBuilder_.build();
            }
            if (exclusiveGroupBuilder_ == null) {
              if (((bitField0_ & 0x00000008) != 0)) {
                exclusiveGroup_ = java.util.Collections.unmodifiableList(exclusiveGroup_);
                bitField0_ = (bitField0_ & ~0x00000008);
              }
              result.exclusiveGroup_ = exclusiveGroup_;
            } else {
              result.exclusiveGroup_ = exclusiveGroupBuilder_.build();
            }
            if (iterationLevelsBuilder_ == null) {
              if (((bitField0_ & 0x00000010) != 0)) {
                iterationLevels_ = java.util.Collections.unmodifiableList(iterationLevels_);
                bitField0_ = (bitField0_ & ~0x00000010);
              }
              result.iterationLevels_ = iterationLevels_;
            } else {
              result.iterationLevels_ = iterationLevelsBuilder_.build();
            }
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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.GeneratedMessageV3.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.GeneratedMessageV3.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.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getExclusiveGroupFieldBuilder() : null;
                } else {
                  exclusiveGroupBuilder_.addAllMessages(other.exclusiveGroup_);
                }
              }
            }
            if (iterationLevelsBuilder_ == null) {
              if (!other.iterationLevels_.isEmpty()) {
                if (iterationLevels_.isEmpty()) {
                  iterationLevels_ = other.iterationLevels_;
                  bitField0_ = (bitField0_ & ~0x00000010);
                } else {
                  ensureIterationLevelsIsMutable();
                  iterationLevels_.addAll(other.iterationLevels_);
                }
                onChanged();
              }
            } else {
              if (!other.iterationLevels_.isEmpty()) {
                if (iterationLevelsBuilder_.isEmpty()) {
                  iterationLevelsBuilder_.dispose();
                  iterationLevelsBuilder_ = null;
                  iterationLevels_ = other.iterationLevels_;
                  bitField0_ = (bitField0_ & ~0x00000010);
                  iterationLevelsBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getIterationLevelsFieldBuilder() : null;
                } else {
                  iterationLevelsBuilder_.addAllMessages(other.iterationLevels_);
                }
              }
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private com.google.protobuf.Internal.LongList timerInstanceId_ = emptyLongList();
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000001) != 0)) {
              timerInstanceId_ = mutableCopy(timerInstanceId_);
              bitField0_ |= 0x00000001;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return A list containing the timerInstanceId.
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return ((bitField0_ & 0x00000001) != 0) ?
                     java.util.Collections.unmodifiableList(timerInstanceId_) : timerInstanceId_;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return The count of timerInstanceId.
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param index The index of the element to return.
           * @return The timerInstanceId at the given index.
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.getLong(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param index The index to set the value at.
           * @param value The timerInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.setLong(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param value The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.addLong(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @param values The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }

          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_ =
            java.util.Collections.emptyList();
          private void ensureVariableIsMutable() {
            if (!((bitField0_ & 0x00000002) != 0)) {
              variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>(variable_);
              bitField0_ |= 0x00000002;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              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();
              com.google.protobuf.AbstractMessageLite.Builder.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.RepeatedFieldBuilderV3<
              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.RepeatedFieldBuilderV3<
                  org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder>(
                      variable_,
                      ((bitField0_ & 0x00000002) != 0),
                      getParentForChildren(),
                      isClean());
              variable_ = null;
            }
            return variableBuilder_;
          }

          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> nodeInstance_ =
            java.util.Collections.emptyList();
          private void ensureNodeInstanceIsMutable() {
            if (!((bitField0_ & 0x00000004) != 0)) {
              nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>(nodeInstance_);
              bitField0_ |= 0x00000004;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              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();
              com.google.protobuf.AbstractMessageLite.Builder.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.RepeatedFieldBuilderV3<
              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.RepeatedFieldBuilderV3<
                  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) != 0),
                      getParentForChildren(),
                      isClean());
              nodeInstance_ = null;
            }
            return nodeInstanceBuilder_;
          }

          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> exclusiveGroup_ =
            java.util.Collections.emptyList();
          private void ensureExclusiveGroupIsMutable() {
            if (!((bitField0_ & 0x00000008) != 0)) {
              exclusiveGroup_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance>(exclusiveGroup_);
              bitField0_ |= 0x00000008;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              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();
              com.google.protobuf.AbstractMessageLite.Builder.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.RepeatedFieldBuilderV3<
              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.RepeatedFieldBuilderV3<
                  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) != 0),
                      getParentForChildren(),
                      isClean());
              exclusiveGroup_ = null;
            }
            return exclusiveGroupBuilder_;
          }

          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> iterationLevels_ =
            java.util.Collections.emptyList();
          private void ensureIterationLevelsIsMutable() {
            if (!((bitField0_ & 0x00000010) != 0)) {
              iterationLevels_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel>(iterationLevels_);
              bitField0_ |= 0x00000010;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.IterationLevel, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder, org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> iterationLevelsBuilder_;

          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> getIterationLevelsList() {
            if (iterationLevelsBuilder_ == null) {
              return java.util.Collections.unmodifiableList(iterationLevels_);
            } else {
              return iterationLevelsBuilder_.getMessageList();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public int getIterationLevelsCount() {
            if (iterationLevelsBuilder_ == null) {
              return iterationLevels_.size();
            } else {
              return iterationLevelsBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getIterationLevels(int index) {
            if (iterationLevelsBuilder_ == null) {
              return iterationLevels_.get(index);
            } else {
              return iterationLevelsBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public Builder setIterationLevels(
              int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel value) {
            if (iterationLevelsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureIterationLevelsIsMutable();
              iterationLevels_.set(index, value);
              onChanged();
            } else {
              iterationLevelsBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public Builder setIterationLevels(
              int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder builderForValue) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              iterationLevels_.set(index, builderForValue.build());
              onChanged();
            } else {
              iterationLevelsBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public Builder addIterationLevels(org.jbpm.marshalling.impl.JBPMMessages.IterationLevel value) {
            if (iterationLevelsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureIterationLevelsIsMutable();
              iterationLevels_.add(value);
              onChanged();
            } else {
              iterationLevelsBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public Builder addIterationLevels(
              int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel value) {
            if (iterationLevelsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureIterationLevelsIsMutable();
              iterationLevels_.add(index, value);
              onChanged();
            } else {
              iterationLevelsBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public Builder addIterationLevels(
              org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder builderForValue) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              iterationLevels_.add(builderForValue.build());
              onChanged();
            } else {
              iterationLevelsBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public Builder addIterationLevels(
              int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder builderForValue) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              iterationLevels_.add(index, builderForValue.build());
              onChanged();
            } else {
              iterationLevelsBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public Builder addAllIterationLevels(
              java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> values) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, iterationLevels_);
              onChanged();
            } else {
              iterationLevelsBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public Builder clearIterationLevels() {
            if (iterationLevelsBuilder_ == null) {
              iterationLevels_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000010);
              onChanged();
            } else {
              iterationLevelsBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public Builder removeIterationLevels(int index) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              iterationLevels_.remove(index);
              onChanged();
            } else {
              iterationLevelsBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder getIterationLevelsBuilder(
              int index) {
            return getIterationLevelsFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder getIterationLevelsOrBuilder(
              int index) {
            if (iterationLevelsBuilder_ == null) {
              return iterationLevels_.get(index);  } else {
              return iterationLevelsBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
               getIterationLevelsOrBuilderList() {
            if (iterationLevelsBuilder_ != null) {
              return iterationLevelsBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(iterationLevels_);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder addIterationLevelsBuilder() {
            return getIterationLevelsFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder addIterationLevelsBuilder(
              int index) {
            return getIterationLevelsFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 6;</code>
           */
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder> 
               getIterationLevelsBuilderList() {
            return getIterationLevelsFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.IterationLevel, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder, org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
              getIterationLevelsFieldBuilder() {
            if (iterationLevelsBuilder_ == null) {
              iterationLevelsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  org.jbpm.marshalling.impl.JBPMMessages.IterationLevel, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder, org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder>(
                      iterationLevels_,
                      ((bitField0_ & 0x00000010) != 0),
                      getParentForChildren(),
                      isClean());
              iterationLevels_ = null;
            }
            return iterationLevelsBuilder_;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<CompositeContextNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface ForEachNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <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);

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

        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> 
            getIterationLevelsList();
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getIterationLevels(int index);
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        int getIterationLevelsCount();
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
            getIterationLevelsOrBuilderList();
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder getIterationLevelsOrBuilder(
            int index);

        /**
         * <code>optional int32 sequential_counter = 4;</code>
         * @return Whether the sequentialCounter field is set.
         */
        boolean hasSequentialCounter();
        /**
         * <code>optional int32 sequential_counter = 4;</code>
         * @return The sequentialCounter.
         */
        int getSequentialCounter();

        /**
         * <code>repeated int64 timer_instance_id = 5;</code>
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.Long> getTimerInstanceIdList();
        /**
         * <code>repeated int64 timer_instance_id = 5;</code>
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();
        /**
         * <code>repeated int64 timer_instance_id = 5;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        long getTimerInstanceId(int index);
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode}
       */
      public static final class ForEachNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode)
          ForEachNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use ForEachNode.newBuilder() to construct.
        private ForEachNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private ForEachNode() {
          nodeInstance_ = java.util.Collections.emptyList();
          variable_ = java.util.Collections.emptyList();
          iterationLevels_ = java.util.Collections.emptyList();
          timerInstanceId_ = emptyLongList();
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new ForEachNode();
        }

        @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 {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 10: {
                  if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                    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;
                }
                case 18: {
                  if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                    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 26: {
                  if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                    iterationLevels_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel>();
                    mutable_bitField0_ |= 0x00000004;
                  }
                  iterationLevels_.add(
                      input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.PARSER, extensionRegistry));
                  break;
                }
                case 32: {
                  bitField0_ |= 0x00000001;
                  sequentialCounter_ = input.readInt32();
                  break;
                }
                case 40: {
                  if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000010;
                  }
                  timerInstanceId_.addLong(input.readInt64());
                  break;
                }
                case 42: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000010) != 0) && input.getBytesUntilLimit() > 0) {
                    timerInstanceId_ = newLongList();
                    mutable_bitField0_ |= 0x00000010;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    timerInstanceId_.addLong(input.readInt64());
                  }
                  input.popLimit(limit);
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) != 0)) {
              nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
            }
            if (((mutable_bitField0_ & 0x00000002) != 0)) {
              variable_ = java.util.Collections.unmodifiableList(variable_);
            }
            if (((mutable_bitField0_ & 0x00000004) != 0)) {
              iterationLevels_ = java.util.Collections.unmodifiableList(iterationLevels_);
            }
            if (((mutable_bitField0_ & 0x00000010) != 0)) {
              timerInstanceId_.makeImmutable(); // C
            }
            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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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);
        }

        private int bitField0_;
        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>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        public int getNodeInstanceCount() {
          return nodeInstance_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 1;</code>
         */
        @java.lang.Override
        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>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
            int index) {
          return nodeInstance_.get(index);
        }

        public static final int VARIABLE_FIELD_NUMBER = 2;
        private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_;
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 2;</code>
         */
        @java.lang.Override
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
          return variable_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 2;</code>
         */
        @java.lang.Override
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
            getVariableOrBuilderList() {
          return variable_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 2;</code>
         */
        @java.lang.Override
        public int getVariableCount() {
          return variable_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 2;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
          return variable_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.Variable variable = 2;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
            int index) {
          return variable_.get(index);
        }

        public static final int ITERATIONLEVELS_FIELD_NUMBER = 3;
        private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> iterationLevels_;
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        @java.lang.Override
        public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> getIterationLevelsList() {
          return iterationLevels_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        @java.lang.Override
        public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
            getIterationLevelsOrBuilderList() {
          return iterationLevels_;
        }
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        @java.lang.Override
        public int getIterationLevelsCount() {
          return iterationLevels_.size();
        }
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getIterationLevels(int index) {
          return iterationLevels_.get(index);
        }
        /**
         * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder getIterationLevelsOrBuilder(
            int index) {
          return iterationLevels_.get(index);
        }

        public static final int SEQUENTIAL_COUNTER_FIELD_NUMBER = 4;
        private int sequentialCounter_;
        /**
         * <code>optional int32 sequential_counter = 4;</code>
         * @return Whether the sequentialCounter field is set.
         */
        @java.lang.Override
        public boolean hasSequentialCounter() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional int32 sequential_counter = 4;</code>
         * @return The sequentialCounter.
         */
        @java.lang.Override
        public int getSequentialCounter() {
          return sequentialCounter_;
        }

        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 5;
        private com.google.protobuf.Internal.LongList timerInstanceId_;
        /**
         * <code>repeated int64 timer_instance_id = 5;</code>
         * @return A list containing the timerInstanceId.
         */
        @java.lang.Override
        public java.util.List<java.lang.Long>
            getTimerInstanceIdList() {
          return timerInstanceId_;
        }
        /**
         * <code>repeated int64 timer_instance_id = 5;</code>
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
          return timerInstanceId_.size();
        }
        /**
         * <code>repeated int64 timer_instance_id = 5;</code>
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public long getTimerInstanceId(int index) {
          return timerInstanceId_.getLong(index);
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          for (int i = 0; i < nodeInstance_.size(); i++) {
            output.writeMessage(1, nodeInstance_.get(i));
          }
          for (int i = 0; i < variable_.size(); i++) {
            output.writeMessage(2, variable_.get(i));
          }
          for (int i = 0; i < iterationLevels_.size(); i++) {
            output.writeMessage(3, iterationLevels_.get(i));
          }
          if (((bitField0_ & 0x00000001) != 0)) {
            output.writeInt32(4, sequentialCounter_);
          }
          for (int i = 0; i < timerInstanceId_.size(); i++) {
            output.writeInt64(5, timerInstanceId_.getLong(i));
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          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));
          }
          for (int i = 0; i < variable_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(2, variable_.get(i));
          }
          for (int i = 0; i < iterationLevels_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(3, iterationLevels_.get(i));
          }
          if (((bitField0_ & 0x00000001) != 0)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(4, sequentialCounter_);
          }
          {
            int dataSize = 0;
            for (int i = 0; i < timerInstanceId_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt64SizeNoTag(timerInstanceId_.getLong(i));
            }
            size += dataSize;
            size += 1 * getTimerInstanceIdList().size();
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode) obj;

          if (!getNodeInstanceList()
              .equals(other.getNodeInstanceList())) return false;
          if (!getVariableList()
              .equals(other.getVariableList())) return false;
          if (!getIterationLevelsList()
              .equals(other.getIterationLevelsList())) return false;
          if (hasSequentialCounter() != other.hasSequentialCounter()) return false;
          if (hasSequentialCounter()) {
            if (getSequentialCounter()
                != other.getSequentialCounter()) return false;
          }
          if (!getTimerInstanceIdList()
              .equals(other.getTimerInstanceIdList())) return false;
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getNodeInstanceCount() > 0) {
            hash = (37 * hash) + NODE_INSTANCE_FIELD_NUMBER;
            hash = (53 * hash) + getNodeInstanceList().hashCode();
          }
          if (getVariableCount() > 0) {
            hash = (37 * hash) + VARIABLE_FIELD_NUMBER;
            hash = (53 * hash) + getVariableList().hashCode();
          }
          if (getIterationLevelsCount() > 0) {
            hash = (37 * hash) + ITERATIONLEVELS_FIELD_NUMBER;
            hash = (53 * hash) + getIterationLevelsList().hashCode();
          }
          if (hasSequentialCounter()) {
            hash = (37 * hash) + SEQUENTIAL_COUNTER_FIELD_NUMBER;
            hash = (53 * hash) + getSequentialCounter();
          }
          if (getTimerInstanceIdCount() > 0) {
            hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
            hash = (53 * hash) + getTimerInstanceIdList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            java.nio.ByteBuffer 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(
            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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode)
            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;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
              getNodeInstanceFieldBuilder();
              getVariableFieldBuilder();
              getIterationLevelsFieldBuilder();
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            if (nodeInstanceBuilder_ == null) {
              nodeInstance_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              nodeInstanceBuilder_.clear();
            }
            if (variableBuilder_ == null) {
              variable_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              variableBuilder_.clear();
            }
            if (iterationLevelsBuilder_ == null) {
              iterationLevels_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              iterationLevelsBuilder_.clear();
            }
            sequentialCounter_ = 0;
            bitField0_ = (bitField0_ & ~0x00000008);
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000010);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance();
          }

          @java.lang.Override
          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;
          }

          @java.lang.Override
          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_;
            int to_bitField0_ = 0;
            if (nodeInstanceBuilder_ == null) {
              if (((bitField0_ & 0x00000001) != 0)) {
                nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
                bitField0_ = (bitField0_ & ~0x00000001);
              }
              result.nodeInstance_ = nodeInstance_;
            } else {
              result.nodeInstance_ = nodeInstanceBuilder_.build();
            }
            if (variableBuilder_ == null) {
              if (((bitField0_ & 0x00000002) != 0)) {
                variable_ = java.util.Collections.unmodifiableList(variable_);
                bitField0_ = (bitField0_ & ~0x00000002);
              }
              result.variable_ = variable_;
            } else {
              result.variable_ = variableBuilder_.build();
            }
            if (iterationLevelsBuilder_ == null) {
              if (((bitField0_ & 0x00000004) != 0)) {
                iterationLevels_ = java.util.Collections.unmodifiableList(iterationLevels_);
                bitField0_ = (bitField0_ & ~0x00000004);
              }
              result.iterationLevels_ = iterationLevels_;
            } else {
              result.iterationLevels_ = iterationLevelsBuilder_.build();
            }
            if (((from_bitField0_ & 0x00000008) != 0)) {
              result.sequentialCounter_ = sequentialCounter_;
              to_bitField0_ |= 0x00000001;
            }
            if (((bitField0_ & 0x00000010) != 0)) {
              timerInstanceId_.makeImmutable();
              bitField0_ = (bitField0_ & ~0x00000010);
            }
            result.timerInstanceId_ = timerInstanceId_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          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.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getNodeInstanceFieldBuilder() : null;
                } else {
                  nodeInstanceBuilder_.addAllMessages(other.nodeInstance_);
                }
              }
            }
            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.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getVariableFieldBuilder() : null;
                } else {
                  variableBuilder_.addAllMessages(other.variable_);
                }
              }
            }
            if (iterationLevelsBuilder_ == null) {
              if (!other.iterationLevels_.isEmpty()) {
                if (iterationLevels_.isEmpty()) {
                  iterationLevels_ = other.iterationLevels_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                } else {
                  ensureIterationLevelsIsMutable();
                  iterationLevels_.addAll(other.iterationLevels_);
                }
                onChanged();
              }
            } else {
              if (!other.iterationLevels_.isEmpty()) {
                if (iterationLevelsBuilder_.isEmpty()) {
                  iterationLevelsBuilder_.dispose();
                  iterationLevelsBuilder_ = null;
                  iterationLevels_ = other.iterationLevels_;
                  bitField0_ = (bitField0_ & ~0x00000004);
                  iterationLevelsBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getIterationLevelsFieldBuilder() : null;
                } else {
                  iterationLevelsBuilder_.addAllMessages(other.iterationLevels_);
                }
              }
            }
            if (other.hasSequentialCounter()) {
              setSequentialCounter(other.getSequentialCounter());
            }
            if (!other.timerInstanceId_.isEmpty()) {
              if (timerInstanceId_.isEmpty()) {
                timerInstanceId_ = other.timerInstanceId_;
                bitField0_ = (bitField0_ & ~0x00000010);
              } else {
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.addAll(other.timerInstanceId_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          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.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> nodeInstance_ =
            java.util.Collections.emptyList();
          private void ensureNodeInstanceIsMutable() {
            if (!((bitField0_ & 0x00000001) != 0)) {
              nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>(nodeInstance_);
              bitField0_ |= 0x00000001;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              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();
              com.google.protobuf.AbstractMessageLite.Builder.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.RepeatedFieldBuilderV3<
              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.RepeatedFieldBuilderV3<
                  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) != 0),
                      getParentForChildren(),
                      isClean());
              nodeInstance_ = null;
            }
            return nodeInstanceBuilder_;
          }

          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_ =
            java.util.Collections.emptyList();
          private void ensureVariableIsMutable() {
            if (!((bitField0_ & 0x00000002) != 0)) {
              variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>(variable_);
              bitField0_ |= 0x00000002;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              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 = 2;</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 = 2;</code>
           */
          public int getVariableCount() {
            if (variableBuilder_ == null) {
              return variable_.size();
            } else {
              return variableBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</code>
           */
          public Builder addAllVariable(
              java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.Variable> values) {
            if (variableBuilder_ == null) {
              ensureVariableIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, variable_);
              onChanged();
            } else {
              variableBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 2;</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 = 2;</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 = 2;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder getVariableBuilder(
              int index) {
            return getVariableFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jbpm.marshalling.Variable variable = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</code>
           */
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder> 
               getVariableBuilderList() {
            return getVariableFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              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.RepeatedFieldBuilderV3<
                  org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder>(
                      variable_,
                      ((bitField0_ & 0x00000002) != 0),
                      getParentForChildren(),
                      isClean());
              variable_ = null;
            }
            return variableBuilder_;
          }

          private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> iterationLevels_ =
            java.util.Collections.emptyList();
          private void ensureIterationLevelsIsMutable() {
            if (!((bitField0_ & 0x00000004) != 0)) {
              iterationLevels_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel>(iterationLevels_);
              bitField0_ |= 0x00000004;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.IterationLevel, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder, org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> iterationLevelsBuilder_;

          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> getIterationLevelsList() {
            if (iterationLevelsBuilder_ == null) {
              return java.util.Collections.unmodifiableList(iterationLevels_);
            } else {
              return iterationLevelsBuilder_.getMessageList();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public int getIterationLevelsCount() {
            if (iterationLevelsBuilder_ == null) {
              return iterationLevels_.size();
            } else {
              return iterationLevelsBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getIterationLevels(int index) {
            if (iterationLevelsBuilder_ == null) {
              return iterationLevels_.get(index);
            } else {
              return iterationLevelsBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public Builder setIterationLevels(
              int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel value) {
            if (iterationLevelsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureIterationLevelsIsMutable();
              iterationLevels_.set(index, value);
              onChanged();
            } else {
              iterationLevelsBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public Builder setIterationLevels(
              int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder builderForValue) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              iterationLevels_.set(index, builderForValue.build());
              onChanged();
            } else {
              iterationLevelsBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public Builder addIterationLevels(org.jbpm.marshalling.impl.JBPMMessages.IterationLevel value) {
            if (iterationLevelsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureIterationLevelsIsMutable();
              iterationLevels_.add(value);
              onChanged();
            } else {
              iterationLevelsBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public Builder addIterationLevels(
              int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel value) {
            if (iterationLevelsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureIterationLevelsIsMutable();
              iterationLevels_.add(index, value);
              onChanged();
            } else {
              iterationLevelsBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public Builder addIterationLevels(
              org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder builderForValue) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              iterationLevels_.add(builderForValue.build());
              onChanged();
            } else {
              iterationLevelsBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public Builder addIterationLevels(
              int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder builderForValue) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              iterationLevels_.add(index, builderForValue.build());
              onChanged();
            } else {
              iterationLevelsBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public Builder addAllIterationLevels(
              java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> values) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, iterationLevels_);
              onChanged();
            } else {
              iterationLevelsBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public Builder clearIterationLevels() {
            if (iterationLevelsBuilder_ == null) {
              iterationLevels_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000004);
              onChanged();
            } else {
              iterationLevelsBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public Builder removeIterationLevels(int index) {
            if (iterationLevelsBuilder_ == null) {
              ensureIterationLevelsIsMutable();
              iterationLevels_.remove(index);
              onChanged();
            } else {
              iterationLevelsBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder getIterationLevelsBuilder(
              int index) {
            return getIterationLevelsFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder getIterationLevelsOrBuilder(
              int index) {
            if (iterationLevelsBuilder_ == null) {
              return iterationLevels_.get(index);  } else {
              return iterationLevelsBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
               getIterationLevelsOrBuilderList() {
            if (iterationLevelsBuilder_ != null) {
              return iterationLevelsBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(iterationLevels_);
            }
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder addIterationLevelsBuilder() {
            return getIterationLevelsFieldBuilder().addBuilder(
                org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder addIterationLevelsBuilder(
              int index) {
            return getIterationLevelsFieldBuilder().addBuilder(
                index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.getDefaultInstance());
          }
          /**
           * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 3;</code>
           */
          public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder> 
               getIterationLevelsBuilderList() {
            return getIterationLevelsFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.IterationLevel, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder, org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
              getIterationLevelsFieldBuilder() {
            if (iterationLevelsBuilder_ == null) {
              iterationLevelsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  org.jbpm.marshalling.impl.JBPMMessages.IterationLevel, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder, org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder>(
                      iterationLevels_,
                      ((bitField0_ & 0x00000004) != 0),
                      getParentForChildren(),
                      isClean());
              iterationLevels_ = null;
            }
            return iterationLevelsBuilder_;
          }

          private int sequentialCounter_ ;
          /**
           * <code>optional int32 sequential_counter = 4;</code>
           * @return Whether the sequentialCounter field is set.
           */
          @java.lang.Override
          public boolean hasSequentialCounter() {
            return ((bitField0_ & 0x00000008) != 0);
          }
          /**
           * <code>optional int32 sequential_counter = 4;</code>
           * @return The sequentialCounter.
           */
          @java.lang.Override
          public int getSequentialCounter() {
            return sequentialCounter_;
          }
          /**
           * <code>optional int32 sequential_counter = 4;</code>
           * @param value The sequentialCounter to set.
           * @return This builder for chaining.
           */
          public Builder setSequentialCounter(int value) {
            bitField0_ |= 0x00000008;
            sequentialCounter_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional int32 sequential_counter = 4;</code>
           * @return This builder for chaining.
           */
          public Builder clearSequentialCounter() {
            bitField0_ = (bitField0_ & ~0x00000008);
            sequentialCounter_ = 0;
            onChanged();
            return this;
          }

          private com.google.protobuf.Internal.LongList timerInstanceId_ = emptyLongList();
          private void ensureTimerInstanceIdIsMutable() {
            if (!((bitField0_ & 0x00000010) != 0)) {
              timerInstanceId_ = mutableCopy(timerInstanceId_);
              bitField0_ |= 0x00000010;
             }
          }
          /**
           * <code>repeated int64 timer_instance_id = 5;</code>
           * @return A list containing the timerInstanceId.
           */
          public java.util.List<java.lang.Long>
              getTimerInstanceIdList() {
            return ((bitField0_ & 0x00000010) != 0) ?
                     java.util.Collections.unmodifiableList(timerInstanceId_) : timerInstanceId_;
          }
          /**
           * <code>repeated int64 timer_instance_id = 5;</code>
           * @return The count of timerInstanceId.
           */
          public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
          }
          /**
           * <code>repeated int64 timer_instance_id = 5;</code>
           * @param index The index of the element to return.
           * @return The timerInstanceId at the given index.
           */
          public long getTimerInstanceId(int index) {
            return timerInstanceId_.getLong(index);
          }
          /**
           * <code>repeated int64 timer_instance_id = 5;</code>
           * @param index The index to set the value at.
           * @param value The timerInstanceId to set.
           * @return This builder for chaining.
           */
          public Builder setTimerInstanceId(
              int index, long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.setLong(index, value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 5;</code>
           * @param value The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addTimerInstanceId(long value) {
            ensureTimerInstanceIdIsMutable();
            timerInstanceId_.addLong(value);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 5;</code>
           * @param values The timerInstanceId to add.
           * @return This builder for chaining.
           */
          public Builder addAllTimerInstanceId(
              java.lang.Iterable<? extends java.lang.Long> values) {
            ensureTimerInstanceIdIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, timerInstanceId_);
            onChanged();
            return this;
          }
          /**
           * <code>repeated int64 timer_instance_id = 5;</code>
           * @return This builder for chaining.
           */
          public Builder clearTimerInstanceId() {
            timerInstanceId_ = emptyLongList();
            bitField0_ = (bitField0_ & ~0x00000010);
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

        public static com.google.protobuf.Parser<ForEachNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface AsyncEventNodeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional string event_type = 1;</code>
         * @return Whether the eventType field is set.
         */
        boolean hasEventType();
        /**
         * <code>optional string event_type = 1;</code>
         * @return The eventType.
         */
        java.lang.String getEventType();
        /**
         * <code>optional string event_type = 1;</code>
         * @return The bytes for eventType.
         */
        com.google.protobuf.ByteString
            getEventTypeBytes();
      }
      /**
       * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode}
       */
      public static final class AsyncEventNode extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode)
          AsyncEventNodeOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use AsyncEventNode.newBuilder() to construct.
        private AsyncEventNode(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private AsyncEventNode() {
          eventType_ = "";
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new AsyncEventNode();
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private AsyncEventNode(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 10: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  bitField0_ |= 0x00000001;
                  eventType_ = bs;
                  break;
                }
                default: {
                  if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).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_AsyncEventNode_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_AsyncEventNode_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.Builder.class);
        }

        private int bitField0_;
        public static final int EVENT_TYPE_FIELD_NUMBER = 1;
        private volatile java.lang.Object eventType_;
        /**
         * <code>optional string event_type = 1;</code>
         * @return Whether the eventType field is set.
         */
        @java.lang.Override
        public boolean hasEventType() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional string event_type = 1;</code>
         * @return The eventType.
         */
        @java.lang.Override
        public java.lang.String getEventType() {
          java.lang.Object ref = eventType_;
          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()) {
              eventType_ = s;
            }
            return s;
          }
        }
        /**
         * <code>optional string event_type = 1;</code>
         * @return The bytes for eventType.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getEventTypeBytes() {
          java.lang.Object ref = eventType_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            eventType_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) != 0)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 1, eventType_);
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) != 0)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, eventType_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode)) {
            return super.equals(obj);
          }
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode) obj;

          if (hasEventType() != other.hasEventType()) return false;
          if (hasEventType()) {
            if (!getEventType()
                .equals(other.getEventType())) return false;
          }
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (hasEventType()) {
            hash = (37 * hash) + EVENT_TYPE_FIELD_NUMBER;
            hash = (53 * hash) + getEventType().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode parseFrom(
            java.nio.ByteBuffer 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.AsyncEventNode parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode 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.AsyncEventNode parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode 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.AsyncEventNode parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode)
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNodeOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_AsyncEventNode_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_AsyncEventNode_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.class, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.Builder.class);
          }

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

          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            eventType_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_AsyncEventNode_descriptor;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode getDefaultInstanceForType() {
            return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.getDefaultInstance();
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode build() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode buildPartial() {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode result = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              to_bitField0_ |= 0x00000001;
            }
            result.eventType_ = eventType_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode) {
              return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode other) {
            if (other == org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.getDefaultInstance()) return this;
            if (other.hasEventType()) {
              bitField0_ |= 0x00000001;
              eventType_ = other.eventType_;
              onChanged();
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private java.lang.Object eventType_ = "";
          /**
           * <code>optional string event_type = 1;</code>
           * @return Whether the eventType field is set.
           */
          public boolean hasEventType() {
            return ((bitField0_ & 0x00000001) != 0);
          }
          /**
           * <code>optional string event_type = 1;</code>
           * @return The eventType.
           */
          public java.lang.String getEventType() {
            java.lang.Object ref = eventType_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              if (bs.isValidUtf8()) {
                eventType_ = s;
              }
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <code>optional string event_type = 1;</code>
           * @return The bytes for eventType.
           */
          public com.google.protobuf.ByteString
              getEventTypeBytes() {
            java.lang.Object ref = eventType_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              eventType_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <code>optional string event_type = 1;</code>
           * @param value The eventType to set.
           * @return This builder for chaining.
           */
          public Builder setEventType(
              java.lang.String value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            eventType_ = value;
            onChanged();
            return this;
          }
          /**
           * <code>optional string event_type = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearEventType() {
            bitField0_ = (bitField0_ & ~0x00000001);
            eventType_ = getDefaultInstance().getEventType();
            onChanged();
            return this;
          }
          /**
           * <code>optional string event_type = 1;</code>
           * @param value The bytes for eventType to set.
           * @return This builder for chaining.
           */
          public Builder setEventTypeBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            eventType_ = value;
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode)
        private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode();
        }

        public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        @java.lang.Deprecated public static final com.google.protobuf.Parser<AsyncEventNode>
            PARSER = new com.google.protobuf.AbstractParser<AsyncEventNode>() {
          @java.lang.Override
          public AsyncEventNode parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new AsyncEventNode(input, extensionRegistry);
          }
        };

        public static com.google.protobuf.Parser<AsyncEventNode> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      private int bitField0_;
      public static final int TYPE_FIELD_NUMBER = 1;
      private int type_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
       * @return Whether the type field is set.
       */
      @java.lang.Override public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
       * @return The type.
       */
      @java.lang.Override public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType getType() {
        @SuppressWarnings("deprecation")
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType result = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType.valueOf(type_);
        return result == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType.RULE_SET_NODE : result;
      }

      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>
       * @return Whether the ruleSet field is set.
       */
      @java.lang.Override
      public boolean hasRuleSet() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       * @return The ruleSet.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getRuleSet() {
        return ruleSet_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance() : ruleSet_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNodeOrBuilder getRuleSetOrBuilder() {
        return ruleSet_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance() : ruleSet_;
      }

      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>
       * @return Whether the humanTask field is set.
       */
      @java.lang.Override
      public boolean hasHumanTask() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       * @return The humanTask.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getHumanTask() {
        return humanTask_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance() : humanTask_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNodeOrBuilder getHumanTaskOrBuilder() {
        return humanTask_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance() : humanTask_;
      }

      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>
       * @return Whether the workItem field is set.
       */
      @java.lang.Override
      public boolean hasWorkItem() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       * @return The workItem.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getWorkItem() {
        return workItem_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance() : workItem_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNodeOrBuilder getWorkItemOrBuilder() {
        return workItem_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance() : workItem_;
      }

      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>
       * @return Whether the subProcess field is set.
       */
      @java.lang.Override
      public boolean hasSubProcess() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       * @return The subProcess.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getSubProcess() {
        return subProcess_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance() : subProcess_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNodeOrBuilder getSubProcessOrBuilder() {
        return subProcess_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance() : subProcess_;
      }

      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>
       * @return Whether the milestone field is set.
       */
      @java.lang.Override
      public boolean hasMilestone() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       * @return The milestone.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getMilestone() {
        return milestone_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance() : milestone_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNodeOrBuilder getMilestoneOrBuilder() {
        return milestone_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance() : milestone_;
      }

      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>
       * @return Whether the event field is set.
       */
      @java.lang.Override
      public boolean hasEvent() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       * @return The event.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getEvent() {
        return event_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance() : event_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNodeOrBuilder getEventOrBuilder() {
        return event_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance() : event_;
      }

      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>
       * @return Whether the timer field is set.
       */
      @java.lang.Override
      public boolean hasTimer() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       * @return The timer.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getTimer() {
        return timer_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance() : timer_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNodeOrBuilder getTimerOrBuilder() {
        return timer_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance() : timer_;
      }

      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>
       * @return Whether the join field is set.
       */
      @java.lang.Override
      public boolean hasJoin() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       * @return The join.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getJoin() {
        return join_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance() : join_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNodeOrBuilder getJoinOrBuilder() {
        return join_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance() : join_;
      }

      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>
       * @return Whether the state field is set.
       */
      @java.lang.Override
      public boolean hasState() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       * @return The state.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getState() {
        return state_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance() : state_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNodeOrBuilder getStateOrBuilder() {
        return state_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance() : state_;
      }

      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>
       * @return Whether the composite field is set.
       */
      @java.lang.Override
      public boolean hasComposite() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       * @return The composite.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getComposite() {
        return composite_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance() : composite_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNodeOrBuilder getCompositeOrBuilder() {
        return composite_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance() : composite_;
      }

      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>
       * @return Whether the forEach field is set.
       */
      @java.lang.Override
      public boolean hasForEach() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       * @return The forEach.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getForEach() {
        return forEach_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance() : forEach_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNodeOrBuilder getForEachOrBuilder() {
        return forEach_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance() : forEach_;
      }

      public static final int ASYNC_EVENT_FIELD_NUMBER = 13;
      private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode asyncEvent_;
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
       * @return Whether the asyncEvent field is set.
       */
      @java.lang.Override
      public boolean hasAsyncEvent() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
       * @return The asyncEvent.
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode getAsyncEvent() {
        return asyncEvent_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.getDefaultInstance() : asyncEvent_;
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
       */
      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNodeOrBuilder getAsyncEventOrBuilder() {
        return asyncEvent_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.getDefaultInstance() : asyncEvent_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeEnum(1, type_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeMessage(2, getRuleSet());
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeMessage(3, getHumanTask());
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          output.writeMessage(4, getWorkItem());
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          output.writeMessage(5, getSubProcess());
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          output.writeMessage(6, getMilestone());
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          output.writeMessage(7, getEvent());
        }
        if (((bitField0_ & 0x00000080) != 0)) {
          output.writeMessage(8, getTimer());
        }
        if (((bitField0_ & 0x00000100) != 0)) {
          output.writeMessage(9, getJoin());
        }
        if (((bitField0_ & 0x00000200) != 0)) {
          output.writeMessage(10, getState());
        }
        if (((bitField0_ & 0x00000400) != 0)) {
          output.writeMessage(11, getComposite());
        }
        if (((bitField0_ & 0x00000800) != 0)) {
          output.writeMessage(12, getForEach());
        }
        if (((bitField0_ & 0x00001000) != 0)) {
          output.writeMessage(13, getAsyncEvent());
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, type_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getRuleSet());
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getHumanTask());
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getWorkItem());
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getSubProcess());
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, getMilestone());
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, getEvent());
        }
        if (((bitField0_ & 0x00000080) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(8, getTimer());
        }
        if (((bitField0_ & 0x00000100) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(9, getJoin());
        }
        if (((bitField0_ & 0x00000200) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(10, getState());
        }
        if (((bitField0_ & 0x00000400) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(11, getComposite());
        }
        if (((bitField0_ & 0x00000800) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(12, getForEach());
        }
        if (((bitField0_ & 0x00001000) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(13, getAsyncEvent());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent)) {
          return super.equals(obj);
        }
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent) obj;

        if (hasType() != other.hasType()) return false;
        if (hasType()) {
          if (type_ != other.type_) return false;
        }
        if (hasRuleSet() != other.hasRuleSet()) return false;
        if (hasRuleSet()) {
          if (!getRuleSet()
              .equals(other.getRuleSet())) return false;
        }
        if (hasHumanTask() != other.hasHumanTask()) return false;
        if (hasHumanTask()) {
          if (!getHumanTask()
              .equals(other.getHumanTask())) return false;
        }
        if (hasWorkItem() != other.hasWorkItem()) return false;
        if (hasWorkItem()) {
          if (!getWorkItem()
              .equals(other.getWorkItem())) return false;
        }
        if (hasSubProcess() != other.hasSubProcess()) return false;
        if (hasSubProcess()) {
          if (!getSubProcess()
              .equals(other.getSubProcess())) return false;
        }
        if (hasMilestone() != other.hasMilestone()) return false;
        if (hasMilestone()) {
          if (!getMilestone()
              .equals(other.getMilestone())) return false;
        }
        if (hasEvent() != other.hasEvent()) return false;
        if (hasEvent()) {
          if (!getEvent()
              .equals(other.getEvent())) return false;
        }
        if (hasTimer() != other.hasTimer()) return false;
        if (hasTimer()) {
          if (!getTimer()
              .equals(other.getTimer())) return false;
        }
        if (hasJoin() != other.hasJoin()) return false;
        if (hasJoin()) {
          if (!getJoin()
              .equals(other.getJoin())) return false;
        }
        if (hasState() != other.hasState()) return false;
        if (hasState()) {
          if (!getState()
              .equals(other.getState())) return false;
        }
        if (hasComposite() != other.hasComposite()) return false;
        if (hasComposite()) {
          if (!getComposite()
              .equals(other.getComposite())) return false;
        }
        if (hasForEach() != other.hasForEach()) return false;
        if (hasForEach()) {
          if (!getForEach()
              .equals(other.getForEach())) return false;
        }
        if (hasAsyncEvent() != other.hasAsyncEvent()) return false;
        if (hasAsyncEvent()) {
          if (!getAsyncEvent()
              .equals(other.getAsyncEvent())) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasType()) {
          hash = (37 * hash) + TYPE_FIELD_NUMBER;
          hash = (53 * hash) + type_;
        }
        if (hasRuleSet()) {
          hash = (37 * hash) + RULE_SET_FIELD_NUMBER;
          hash = (53 * hash) + getRuleSet().hashCode();
        }
        if (hasHumanTask()) {
          hash = (37 * hash) + HUMAN_TASK_FIELD_NUMBER;
          hash = (53 * hash) + getHumanTask().hashCode();
        }
        if (hasWorkItem()) {
          hash = (37 * hash) + WORK_ITEM_FIELD_NUMBER;
          hash = (53 * hash) + getWorkItem().hashCode();
        }
        if (hasSubProcess()) {
          hash = (37 * hash) + SUB_PROCESS_FIELD_NUMBER;
          hash = (53 * hash) + getSubProcess().hashCode();
        }
        if (hasMilestone()) {
          hash = (37 * hash) + MILESTONE_FIELD_NUMBER;
          hash = (53 * hash) + getMilestone().hashCode();
        }
        if (hasEvent()) {
          hash = (37 * hash) + EVENT_FIELD_NUMBER;
          hash = (53 * hash) + getEvent().hashCode();
        }
        if (hasTimer()) {
          hash = (37 * hash) + TIMER_FIELD_NUMBER;
          hash = (53 * hash) + getTimer().hashCode();
        }
        if (hasJoin()) {
          hash = (37 * hash) + JOIN_FIELD_NUMBER;
          hash = (53 * hash) + getJoin().hashCode();
        }
        if (hasState()) {
          hash = (37 * hash) + STATE_FIELD_NUMBER;
          hash = (53 * hash) + getState().hashCode();
        }
        if (hasComposite()) {
          hash = (37 * hash) + COMPOSITE_FIELD_NUMBER;
          hash = (53 * hash) + getComposite().hashCode();
        }
        if (hasForEach()) {
          hash = (37 * hash) + FOR_EACH_FIELD_NUMBER;
          hash = (53 * hash) + getForEach().hashCode();
        }
        if (hasAsyncEvent()) {
          hash = (37 * hash) + ASYNC_EVENT_FIELD_NUMBER;
          hash = (53 * hash) + getAsyncEvent().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          java.nio.ByteBuffer 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(
          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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent)
          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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getRuleSetFieldBuilder();
            getHumanTaskFieldBuilder();
            getWorkItemFieldBuilder();
            getSubProcessFieldBuilder();
            getMilestoneFieldBuilder();
            getEventFieldBuilder();
            getTimerFieldBuilder();
            getJoinFieldBuilder();
            getStateFieldBuilder();
            getCompositeFieldBuilder();
            getForEachFieldBuilder();
            getAsyncEventFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          type_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (ruleSetBuilder_ == null) {
            ruleSet_ = null;
          } else {
            ruleSetBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          if (humanTaskBuilder_ == null) {
            humanTask_ = null;
          } else {
            humanTaskBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          if (workItemBuilder_ == null) {
            workItem_ = null;
          } else {
            workItemBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          if (subProcessBuilder_ == null) {
            subProcess_ = null;
          } else {
            subProcessBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          if (milestoneBuilder_ == null) {
            milestone_ = null;
          } else {
            milestoneBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          if (eventBuilder_ == null) {
            event_ = null;
          } else {
            eventBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000040);
          if (timerBuilder_ == null) {
            timer_ = null;
          } else {
            timerBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000080);
          if (joinBuilder_ == null) {
            join_ = null;
          } else {
            joinBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000100);
          if (stateBuilder_ == null) {
            state_ = null;
          } else {
            stateBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000200);
          if (compositeBuilder_ == null) {
            composite_ = null;
          } else {
            compositeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000400);
          if (forEachBuilder_ == null) {
            forEach_ = null;
          } else {
            forEachBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000800);
          if (asyncEventBuilder_ == null) {
            asyncEvent_ = null;
          } else {
            asyncEventBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00001000);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor;
        }

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.getDefaultInstance();
        }

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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) != 0)) {
            to_bitField0_ |= 0x00000001;
          }
          result.type_ = type_;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            if (ruleSetBuilder_ == null) {
              result.ruleSet_ = ruleSet_;
            } else {
              result.ruleSet_ = ruleSetBuilder_.build();
            }
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            if (humanTaskBuilder_ == null) {
              result.humanTask_ = humanTask_;
            } else {
              result.humanTask_ = humanTaskBuilder_.build();
            }
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            if (workItemBuilder_ == null) {
              result.workItem_ = workItem_;
            } else {
              result.workItem_ = workItemBuilder_.build();
            }
            to_bitField0_ |= 0x00000008;
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            if (subProcessBuilder_ == null) {
              result.subProcess_ = subProcess_;
            } else {
              result.subProcess_ = subProcessBuilder_.build();
            }
            to_bitField0_ |= 0x00000010;
          }
          if (((from_bitField0_ & 0x00000020) != 0)) {
            if (milestoneBuilder_ == null) {
              result.milestone_ = milestone_;
            } else {
              result.milestone_ = milestoneBuilder_.build();
            }
            to_bitField0_ |= 0x00000020;
          }
          if (((from_bitField0_ & 0x00000040) != 0)) {
            if (eventBuilder_ == null) {
              result.event_ = event_;
            } else {
              result.event_ = eventBuilder_.build();
            }
            to_bitField0_ |= 0x00000040;
          }
          if (((from_bitField0_ & 0x00000080) != 0)) {
            if (timerBuilder_ == null) {
              result.timer_ = timer_;
            } else {
              result.timer_ = timerBuilder_.build();
            }
            to_bitField0_ |= 0x00000080;
          }
          if (((from_bitField0_ & 0x00000100) != 0)) {
            if (joinBuilder_ == null) {
              result.join_ = join_;
            } else {
              result.join_ = joinBuilder_.build();
            }
            to_bitField0_ |= 0x00000100;
          }
          if (((from_bitField0_ & 0x00000200) != 0)) {
            if (stateBuilder_ == null) {
              result.state_ = state_;
            } else {
              result.state_ = stateBuilder_.build();
            }
            to_bitField0_ |= 0x00000200;
          }
          if (((from_bitField0_ & 0x00000400) != 0)) {
            if (compositeBuilder_ == null) {
              result.composite_ = composite_;
            } else {
              result.composite_ = compositeBuilder_.build();
            }
            to_bitField0_ |= 0x00000400;
          }
          if (((from_bitField0_ & 0x00000800) != 0)) {
            if (forEachBuilder_ == null) {
              result.forEach_ = forEach_;
            } else {
              result.forEach_ = forEachBuilder_.build();
            }
            to_bitField0_ |= 0x00000800;
          }
          if (((from_bitField0_ & 0x00001000) != 0)) {
            if (asyncEventBuilder_ == null) {
              result.asyncEvent_ = asyncEvent_;
            } else {
              result.asyncEvent_ = asyncEventBuilder_.build();
            }
            to_bitField0_ |= 0x00001000;
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        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());
          }
          if (other.hasAsyncEvent()) {
            mergeAsyncEvent(other.getAsyncEvent());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        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.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int type_ = 0;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
         * @return Whether the type field is set.
         */
        @java.lang.Override public boolean hasType() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
         * @return The type.
         */
        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType getType() {
          @SuppressWarnings("deprecation")
          org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType result = org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType.valueOf(type_);
          return result == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType.RULE_SET_NODE : result;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
         * @param value The type to set.
         * @return This builder for chaining.
         */
        public Builder setType(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          type_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceType type = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearType() {
          bitField0_ = (bitField0_ & ~0x00000001);
          type_ = 0;
          onChanged();
          return this;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode ruleSet_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the ruleSet field is set.
         */
        public boolean hasRuleSet() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         * @return The ruleSet.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode getRuleSet() {
          if (ruleSetBuilder_ == null) {
            return ruleSet_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance() : 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) != 0) &&
                ruleSet_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.RuleSetNode.getDefaultInstance() : ruleSet_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.RuleSetNode rule_set = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getRuleSet(),
                    getParentForChildren(),
                    isClean());
            ruleSet_ = null;
          }
          return ruleSetBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode humanTask_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the humanTask field is set.
         */
        public boolean hasHumanTask() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         * @return The humanTask.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode getHumanTask() {
          if (humanTaskBuilder_ == null) {
            return humanTask_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance() : 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) != 0) &&
                humanTask_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.HumanTaskNode.getDefaultInstance() : humanTask_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.HumanTaskNode human_task = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getHumanTask(),
                    getParentForChildren(),
                    isClean());
            humanTask_ = null;
          }
          return humanTaskBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode workItem_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the workItem field is set.
         */
        public boolean hasWorkItem() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         * @return The workItem.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode getWorkItem() {
          if (workItemBuilder_ == null) {
            return workItem_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance() : 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) != 0) &&
                workItem_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.WorkItemNode.getDefaultInstance() : workItem_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.WorkItemNode work_item = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getWorkItem(),
                    getParentForChildren(),
                    isClean());
            workItem_ = null;
          }
          return workItemBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode subProcess_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the subProcess field is set.
         */
        public boolean hasSubProcess() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         * @return The subProcess.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode getSubProcess() {
          if (subProcessBuilder_ == null) {
            return subProcess_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance() : 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) != 0) &&
                subProcess_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.SubProcessNode.getDefaultInstance() : subProcess_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.SubProcessNode sub_process = 5;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getSubProcess(),
                    getParentForChildren(),
                    isClean());
            subProcess_ = null;
          }
          return subProcessBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode milestone_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the milestone field is set.
         */
        public boolean hasMilestone() {
          return ((bitField0_ & 0x00000020) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         * @return The milestone.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode getMilestone() {
          if (milestoneBuilder_ == null) {
            return milestone_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance() : 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) != 0) &&
                milestone_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.MilestoneNode.getDefaultInstance() : milestone_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.MilestoneNode milestone = 6;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getMilestone(),
                    getParentForChildren(),
                    isClean());
            milestone_ = null;
          }
          return milestoneBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode event_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the event field is set.
         */
        public boolean hasEvent() {
          return ((bitField0_ & 0x00000040) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         * @return The event.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode getEvent() {
          if (eventBuilder_ == null) {
            return event_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance() : 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) != 0) &&
                event_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.EventNode.getDefaultInstance() : event_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.EventNode event = 7;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getEvent(),
                    getParentForChildren(),
                    isClean());
            event_ = null;
          }
          return eventBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode timer_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the timer field is set.
         */
        public boolean hasTimer() {
          return ((bitField0_ & 0x00000080) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         * @return The timer.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode getTimer() {
          if (timerBuilder_ == null) {
            return timer_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance() : 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) != 0) &&
                timer_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.TimerNode.getDefaultInstance() : timer_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.TimerNode timer = 8;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getTimer(),
                    getParentForChildren(),
                    isClean());
            timer_ = null;
          }
          return timerBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode join_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the join field is set.
         */
        public boolean hasJoin() {
          return ((bitField0_ & 0x00000100) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         * @return The join.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode getJoin() {
          if (joinBuilder_ == null) {
            return join_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance() : 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) != 0) &&
                join_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.JoinNode.getDefaultInstance() : join_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.JoinNode join = 9;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getJoin(),
                    getParentForChildren(),
                    isClean());
            join_ = null;
          }
          return joinBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode state_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the state field is set.
         */
        public boolean hasState() {
          return ((bitField0_ & 0x00000200) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         * @return The state.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode getState() {
          if (stateBuilder_ == null) {
            return state_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance() : 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) != 0) &&
                state_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.StateNode.getDefaultInstance() : state_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.StateNode state = 10;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getState(),
                    getParentForChildren(),
                    isClean());
            state_ = null;
          }
          return stateBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode composite_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the composite field is set.
         */
        public boolean hasComposite() {
          return ((bitField0_ & 0x00000400) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         * @return The composite.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode getComposite() {
          if (compositeBuilder_ == null) {
            return composite_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance() : 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) != 0) &&
                composite_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.CompositeContextNode.getDefaultInstance() : composite_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.CompositeContextNode composite = 11;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getComposite(),
                    getParentForChildren(),
                    isClean());
            composite_ = null;
          }
          return compositeBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode forEach_;
        private com.google.protobuf.SingleFieldBuilderV3<
            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>
         * @return Whether the forEach field is set.
         */
        public boolean hasForEach() {
          return ((bitField0_ & 0x00000800) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         * @return The forEach.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode getForEach() {
          if (forEachBuilder_ == null) {
            return forEach_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance() : 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) != 0) &&
                forEach_ != null &&
                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_ = null;
            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_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.ForEachNode.getDefaultInstance() : forEach_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.ForEachNode for_each = 12;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            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.SingleFieldBuilderV3<
                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>(
                    getForEach(),
                    getParentForChildren(),
                    isClean());
            forEach_ = null;
          }
          return forEachBuilder_;
        }

        private org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode asyncEvent_;
        private com.google.protobuf.SingleFieldBuilderV3<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNodeOrBuilder> asyncEventBuilder_;
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
         * @return Whether the asyncEvent field is set.
         */
        public boolean hasAsyncEvent() {
          return ((bitField0_ & 0x00001000) != 0);
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
         * @return The asyncEvent.
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode getAsyncEvent() {
          if (asyncEventBuilder_ == null) {
            return asyncEvent_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.getDefaultInstance() : asyncEvent_;
          } else {
            return asyncEventBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
         */
        public Builder setAsyncEvent(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode value) {
          if (asyncEventBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            asyncEvent_ = value;
            onChanged();
          } else {
            asyncEventBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00001000;
          return this;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
         */
        public Builder setAsyncEvent(
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.Builder builderForValue) {
          if (asyncEventBuilder_ == null) {
            asyncEvent_ = builderForValue.build();
            onChanged();
          } else {
            asyncEventBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00001000;
          return this;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
         */
        public Builder mergeAsyncEvent(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode value) {
          if (asyncEventBuilder_ == null) {
            if (((bitField0_ & 0x00001000) != 0) &&
                asyncEvent_ != null &&
                asyncEvent_ != org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.getDefaultInstance()) {
              asyncEvent_ =
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.newBuilder(asyncEvent_).mergeFrom(value).buildPartial();
            } else {
              asyncEvent_ = value;
            }
            onChanged();
          } else {
            asyncEventBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00001000;
          return this;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
         */
        public Builder clearAsyncEvent() {
          if (asyncEventBuilder_ == null) {
            asyncEvent_ = null;
            onChanged();
          } else {
            asyncEventBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00001000);
          return this;
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.Builder getAsyncEventBuilder() {
          bitField0_ |= 0x00001000;
          onChanged();
          return getAsyncEventFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
         */
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNodeOrBuilder getAsyncEventOrBuilder() {
          if (asyncEventBuilder_ != null) {
            return asyncEventBuilder_.getMessageOrBuilder();
          } else {
            return asyncEvent_ == null ?
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.getDefaultInstance() : asyncEvent_;
          }
        }
        /**
         * <code>optional .org.jbpm.marshalling.ProcessInstance.NodeInstanceContent.AsyncEventNode async_event = 13;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNodeOrBuilder> 
            getAsyncEventFieldBuilder() {
          if (asyncEventBuilder_ == null) {
            asyncEventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNode.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent.AsyncEventNodeOrBuilder>(
                    getAsyncEvent(),
                    getParentForChildren(),
                    isClean());
            asyncEvent_ = null;
          }
          return asyncEventBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent)
      }

      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance.NodeInstanceContent)
      private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent();
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

      public static com.google.protobuf.Parser<NodeInstanceContent> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceContent getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int PROCESS_TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object processType_;
    /**
     * <code>optional string process_type = 1;</code>
     * @return Whether the processType field is set.
     */
    @java.lang.Override
    public boolean hasProcessType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string process_type = 1;</code>
     * @return The processType.
     */
    @java.lang.Override
    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>
     * @return The bytes for processType.
     */
    @java.lang.Override
    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;
      }
    }

    public static final int ID_FIELD_NUMBER = 2;
    private long id_;
    /**
     * <code>optional int64 id = 2;</code>
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 id = 2;</code>
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }

    public static final int PROCESS_ID_FIELD_NUMBER = 3;
    private volatile java.lang.Object processId_;
    /**
     * <code>optional string process_id = 3;</code>
     * @return Whether the processId field is set.
     */
    @java.lang.Override
    public boolean hasProcessId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string process_id = 3;</code>
     * @return The processId.
     */
    @java.lang.Override
    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>
     * @return The bytes for processId.
     */
    @java.lang.Override
    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;
      }
    }

    public static final int STATE_FIELD_NUMBER = 4;
    private int state_;
    /**
     * <code>optional int32 state = 4;</code>
     * @return Whether the state field is set.
     */
    @java.lang.Override
    public boolean hasState() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int32 state = 4;</code>
     * @return The state.
     */
    @java.lang.Override
    public int getState() {
      return state_;
    }

    public static final int NODE_INSTANCE_COUNTER_FIELD_NUMBER = 5;
    private long nodeInstanceCounter_;
    /**
     * <code>optional int64 node_instance_counter = 5;</code>
     * @return Whether the nodeInstanceCounter field is set.
     */
    @java.lang.Override
    public boolean hasNodeInstanceCounter() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int64 node_instance_counter = 5;</code>
     * @return The nodeInstanceCounter.
     */
    @java.lang.Override
    public long getNodeInstanceCounter() {
      return nodeInstanceCounter_;
    }

    public static final int PROCESS_XML_FIELD_NUMBER = 11;
    private volatile java.lang.Object processXml_;
    /**
     * <code>optional string process_xml = 11;</code>
     * @return Whether the processXml field is set.
     */
    @java.lang.Override
    public boolean hasProcessXml() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string process_xml = 11;</code>
     * @return The processXml.
     */
    @java.lang.Override
    public java.lang.String getProcessXml() {
      java.lang.Object ref = processXml_;
      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()) {
          processXml_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string process_xml = 11;</code>
     * @return The bytes for processXml.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getProcessXmlBytes() {
      java.lang.Object ref = processXml_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        processXml_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PARENT_PROCESS_INSTANCE_ID_FIELD_NUMBER = 12;
    private long parentProcessInstanceId_;
    /**
     * <code>optional int64 parent_process_instance_id = 12;</code>
     * @return Whether the parentProcessInstanceId field is set.
     */
    @java.lang.Override
    public boolean hasParentProcessInstanceId() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int64 parent_process_instance_id = 12;</code>
     * @return The parentProcessInstanceId.
     */
    @java.lang.Override
    public long getParentProcessInstanceId() {
      return parentProcessInstanceId_;
    }

    public static final int DESCRIPTION_FIELD_NUMBER = 15;
    private volatile java.lang.Object description_;
    /**
     * <code>optional string description = 15;</code>
     * @return Whether the description field is set.
     */
    @java.lang.Override
    public boolean hasDescription() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional string description = 15;</code>
     * @return The description.
     */
    @java.lang.Override
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      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()) {
          description_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string description = 15;</code>
     * @return The bytes for description.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SIGNAL_COMPLETION_FIELD_NUMBER = 16;
    private boolean signalCompletion_;
    /**
     * <code>optional bool signal_completion = 16 [default = true];</code>
     * @return Whether the signalCompletion field is set.
     */
    @java.lang.Override
    public boolean hasSignalCompletion() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional bool signal_completion = 16 [default = true];</code>
     * @return The signalCompletion.
     */
    @java.lang.Override
    public boolean getSignalCompletion() {
      return signalCompletion_;
    }

    public static final int DEPLOYMENTID_FIELD_NUMBER = 17;
    private volatile java.lang.Object deploymentId_;
    /**
     * <code>optional string deploymentId = 17;</code>
     * @return Whether the deploymentId field is set.
     */
    @java.lang.Override
    public boolean hasDeploymentId() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional string deploymentId = 17;</code>
     * @return The deploymentId.
     */
    @java.lang.Override
    public java.lang.String getDeploymentId() {
      java.lang.Object ref = deploymentId_;
      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()) {
          deploymentId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string deploymentId = 17;</code>
     * @return The bytes for deploymentId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeploymentIdBytes() {
      java.lang.Object ref = deploymentId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deploymentId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CORRELATION_KEY_FIELD_NUMBER = 18;
    private volatile java.lang.Object correlationKey_;
    /**
     * <code>optional string correlation_key = 18;</code>
     * @return Whether the correlationKey field is set.
     */
    @java.lang.Override
    public boolean hasCorrelationKey() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional string correlation_key = 18;</code>
     * @return The correlationKey.
     */
    @java.lang.Override
    public java.lang.String getCorrelationKey() {
      java.lang.Object ref = correlationKey_;
      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()) {
          correlationKey_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string correlation_key = 18;</code>
     * @return The bytes for correlationKey.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCorrelationKeyBytes() {
      java.lang.Object ref = correlationKey_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        correlationKey_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SLA_TIMER_ID_FIELD_NUMBER = 19;
    private long slaTimerId_;
    /**
     * <code>optional int64 sla_timer_id = 19;</code>
     * @return Whether the slaTimerId field is set.
     */
    @java.lang.Override
    public boolean hasSlaTimerId() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional int64 sla_timer_id = 19;</code>
     * @return The slaTimerId.
     */
    @java.lang.Override
    public long getSlaTimerId() {
      return slaTimerId_;
    }

    public static final int SLA_DUE_DATE_FIELD_NUMBER = 20;
    private long slaDueDate_;
    /**
     * <code>optional int64 sla_due_date = 20;</code>
     * @return Whether the slaDueDate field is set.
     */
    @java.lang.Override
    public boolean hasSlaDueDate() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional int64 sla_due_date = 20;</code>
     * @return The slaDueDate.
     */
    @java.lang.Override
    public long getSlaDueDate() {
      return slaDueDate_;
    }

    public static final int SLA_COMPLIANCE_FIELD_NUMBER = 21;
    private int slaCompliance_;
    /**
     * <code>optional int32 sla_compliance = 21;</code>
     * @return Whether the slaCompliance field is set.
     */
    @java.lang.Override
    public boolean hasSlaCompliance() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional int32 sla_compliance = 21;</code>
     * @return The slaCompliance.
     */
    @java.lang.Override
    public int getSlaCompliance() {
      return slaCompliance_;
    }

    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>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    public int getSwimlaneContextCount() {
      return swimlaneContext_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.SwimlaneContextInstance swimlane_context = 6;</code>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder getSwimlaneContextOrBuilder(
        int index) {
      return swimlaneContext_.get(index);
    }

    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>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    public int getNodeInstanceCount() {
      return nodeInstance_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.NodeInstance node_instance = 7;</code>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder getNodeInstanceOrBuilder(
        int index) {
      return nodeInstance_.get(index);
    }

    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>
     */
    @java.lang.Override
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    @java.lang.Override
    public int getVariableCount() {
      return variable_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
      return variable_.get(index);
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 8;</code>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index) {
      return variable_.get(index);
    }

    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>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    public int getExclusiveGroupCount() {
      return exclusiveGroup_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.ProcessInstance.ExclusiveGroupInstance exclusive_group = 10;</code>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder getExclusiveGroupOrBuilder(
        int index) {
      return exclusiveGroup_.get(index);
    }

    public static final int COMPLETEDNODEIDS_FIELD_NUMBER = 13;
    private com.google.protobuf.LazyStringList completedNodeIds_;
    /**
     * <code>repeated string completedNodeIds = 13;</code>
     * @return A list containing the completedNodeIds.
     */
    public com.google.protobuf.ProtocolStringList
        getCompletedNodeIdsList() {
      return completedNodeIds_;
    }
    /**
     * <code>repeated string completedNodeIds = 13;</code>
     * @return The count of completedNodeIds.
     */
    public int getCompletedNodeIdsCount() {
      return completedNodeIds_.size();
    }
    /**
     * <code>repeated string completedNodeIds = 13;</code>
     * @param index The index of the element to return.
     * @return The completedNodeIds at the given index.
     */
    public java.lang.String getCompletedNodeIds(int index) {
      return completedNodeIds_.get(index);
    }
    /**
     * <code>repeated string completedNodeIds = 13;</code>
     * @param index The index of the value to return.
     * @return The bytes of the completedNodeIds at the given index.
     */
    public com.google.protobuf.ByteString
        getCompletedNodeIdsBytes(int index) {
      return completedNodeIds_.getByteString(index);
    }

    public static final int ITERATIONLEVELS_FIELD_NUMBER = 14;
    private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> iterationLevels_;
    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    @java.lang.Override
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> getIterationLevelsList() {
      return iterationLevels_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
        getIterationLevelsOrBuilderList() {
      return iterationLevels_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    @java.lang.Override
    public int getIterationLevelsCount() {
      return iterationLevels_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getIterationLevels(int index) {
      return iterationLevels_.get(index);
    }
    /**
     * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder getIterationLevelsOrBuilder(
        int index) {
      return iterationLevels_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, processType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, id_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, processId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt32(4, state_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        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));
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, processXml_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt64(12, parentProcessInstanceId_);
      }
      for (int i = 0; i < completedNodeIds_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, completedNodeIds_.getRaw(i));
      }
      for (int i = 0; i < iterationLevels_.size(); i++) {
        output.writeMessage(14, iterationLevels_.get(i));
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, description_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeBool(16, signalCompletion_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, deploymentId_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 18, correlationKey_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeInt64(19, slaTimerId_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt64(20, slaDueDate_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeInt32(21, slaCompliance_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, processType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, id_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, processId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, state_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        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));
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, processXml_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(12, parentProcessInstanceId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < completedNodeIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(completedNodeIds_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCompletedNodeIdsList().size();
      }
      for (int i = 0; i < iterationLevels_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, iterationLevels_.get(i));
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, description_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(16, signalCompletion_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, deploymentId_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, correlationKey_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(19, slaTimerId_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(20, slaDueDate_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(21, slaCompliance_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance)) {
        return super.equals(obj);
      }
      org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance) obj;

      if (hasProcessType() != other.hasProcessType()) return false;
      if (hasProcessType()) {
        if (!getProcessType()
            .equals(other.getProcessType())) return false;
      }
      if (hasId() != other.hasId()) return false;
      if (hasId()) {
        if (getId()
            != other.getId()) return false;
      }
      if (hasProcessId() != other.hasProcessId()) return false;
      if (hasProcessId()) {
        if (!getProcessId()
            .equals(other.getProcessId())) return false;
      }
      if (hasState() != other.hasState()) return false;
      if (hasState()) {
        if (getState()
            != other.getState()) return false;
      }
      if (hasNodeInstanceCounter() != other.hasNodeInstanceCounter()) return false;
      if (hasNodeInstanceCounter()) {
        if (getNodeInstanceCounter()
            != other.getNodeInstanceCounter()) return false;
      }
      if (hasProcessXml() != other.hasProcessXml()) return false;
      if (hasProcessXml()) {
        if (!getProcessXml()
            .equals(other.getProcessXml())) return false;
      }
      if (hasParentProcessInstanceId() != other.hasParentProcessInstanceId()) return false;
      if (hasParentProcessInstanceId()) {
        if (getParentProcessInstanceId()
            != other.getParentProcessInstanceId()) return false;
      }
      if (hasDescription() != other.hasDescription()) return false;
      if (hasDescription()) {
        if (!getDescription()
            .equals(other.getDescription())) return false;
      }
      if (hasSignalCompletion() != other.hasSignalCompletion()) return false;
      if (hasSignalCompletion()) {
        if (getSignalCompletion()
            != other.getSignalCompletion()) return false;
      }
      if (hasDeploymentId() != other.hasDeploymentId()) return false;
      if (hasDeploymentId()) {
        if (!getDeploymentId()
            .equals(other.getDeploymentId())) return false;
      }
      if (hasCorrelationKey() != other.hasCorrelationKey()) return false;
      if (hasCorrelationKey()) {
        if (!getCorrelationKey()
            .equals(other.getCorrelationKey())) return false;
      }
      if (hasSlaTimerId() != other.hasSlaTimerId()) return false;
      if (hasSlaTimerId()) {
        if (getSlaTimerId()
            != other.getSlaTimerId()) return false;
      }
      if (hasSlaDueDate() != other.hasSlaDueDate()) return false;
      if (hasSlaDueDate()) {
        if (getSlaDueDate()
            != other.getSlaDueDate()) return false;
      }
      if (hasSlaCompliance() != other.hasSlaCompliance()) return false;
      if (hasSlaCompliance()) {
        if (getSlaCompliance()
            != other.getSlaCompliance()) return false;
      }
      if (!getSwimlaneContextList()
          .equals(other.getSwimlaneContextList())) return false;
      if (!getNodeInstanceList()
          .equals(other.getNodeInstanceList())) return false;
      if (!getVariableList()
          .equals(other.getVariableList())) return false;
      if (!getExclusiveGroupList()
          .equals(other.getExclusiveGroupList())) return false;
      if (!getCompletedNodeIdsList()
          .equals(other.getCompletedNodeIdsList())) return false;
      if (!getIterationLevelsList()
          .equals(other.getIterationLevelsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasProcessType()) {
        hash = (37 * hash) + PROCESS_TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getProcessType().hashCode();
      }
      if (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getId());
      }
      if (hasProcessId()) {
        hash = (37 * hash) + PROCESS_ID_FIELD_NUMBER;
        hash = (53 * hash) + getProcessId().hashCode();
      }
      if (hasState()) {
        hash = (37 * hash) + STATE_FIELD_NUMBER;
        hash = (53 * hash) + getState();
      }
      if (hasNodeInstanceCounter()) {
        hash = (37 * hash) + NODE_INSTANCE_COUNTER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNodeInstanceCounter());
      }
      if (hasProcessXml()) {
        hash = (37 * hash) + PROCESS_XML_FIELD_NUMBER;
        hash = (53 * hash) + getProcessXml().hashCode();
      }
      if (hasParentProcessInstanceId()) {
        hash = (37 * hash) + PARENT_PROCESS_INSTANCE_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getParentProcessInstanceId());
      }
      if (hasDescription()) {
        hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
        hash = (53 * hash) + getDescription().hashCode();
      }
      if (hasSignalCompletion()) {
        hash = (37 * hash) + SIGNAL_COMPLETION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSignalCompletion());
      }
      if (hasDeploymentId()) {
        hash = (37 * hash) + DEPLOYMENTID_FIELD_NUMBER;
        hash = (53 * hash) + getDeploymentId().hashCode();
      }
      if (hasCorrelationKey()) {
        hash = (37 * hash) + CORRELATION_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getCorrelationKey().hashCode();
      }
      if (hasSlaTimerId()) {
        hash = (37 * hash) + SLA_TIMER_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSlaTimerId());
      }
      if (hasSlaDueDate()) {
        hash = (37 * hash) + SLA_DUE_DATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSlaDueDate());
      }
      if (hasSlaCompliance()) {
        hash = (37 * hash) + SLA_COMPLIANCE_FIELD_NUMBER;
        hash = (53 * hash) + getSlaCompliance();
      }
      if (getSwimlaneContextCount() > 0) {
        hash = (37 * hash) + SWIMLANE_CONTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getSwimlaneContextList().hashCode();
      }
      if (getNodeInstanceCount() > 0) {
        hash = (37 * hash) + NODE_INSTANCE_FIELD_NUMBER;
        hash = (53 * hash) + getNodeInstanceList().hashCode();
      }
      if (getVariableCount() > 0) {
        hash = (37 * hash) + VARIABLE_FIELD_NUMBER;
        hash = (53 * hash) + getVariableList().hashCode();
      }
      if (getExclusiveGroupCount() > 0) {
        hash = (37 * hash) + EXCLUSIVE_GROUP_FIELD_NUMBER;
        hash = (53 * hash) + getExclusiveGroupList().hashCode();
      }
      if (getCompletedNodeIdsCount() > 0) {
        hash = (37 * hash) + COMPLETEDNODEIDS_FIELD_NUMBER;
        hash = (53 * hash) + getCompletedNodeIdsList().hashCode();
      }
      if (getIterationLevelsCount() > 0) {
        hash = (37 * hash) + ITERATIONLEVELS_FIELD_NUMBER;
        hash = (53 * hash) + getIterationLevelsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessInstance)
        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;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSwimlaneContextFieldBuilder();
          getNodeInstanceFieldBuilder();
          getVariableFieldBuilder();
          getExclusiveGroupFieldBuilder();
          getIterationLevelsFieldBuilder();
        }
      }
      @java.lang.Override
      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);
        processXml_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        parentProcessInstanceId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000040);
        description_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        signalCompletion_ = true;
        bitField0_ = (bitField0_ & ~0x00000100);
        deploymentId_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        correlationKey_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        slaTimerId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000800);
        slaDueDate_ = 0L;
        bitField0_ = (bitField0_ & ~0x00001000);
        slaCompliance_ = 0;
        bitField0_ = (bitField0_ & ~0x00002000);
        if (swimlaneContextBuilder_ == null) {
          swimlaneContext_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00004000);
        } else {
          swimlaneContextBuilder_.clear();
        }
        if (nodeInstanceBuilder_ == null) {
          nodeInstance_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00008000);
        } else {
          nodeInstanceBuilder_.clear();
        }
        if (variableBuilder_ == null) {
          variable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00010000);
        } else {
          variableBuilder_.clear();
        }
        if (exclusiveGroupBuilder_ == null) {
          exclusiveGroup_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00020000);
        } else {
          exclusiveGroupBuilder_.clear();
        }
        completedNodeIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00040000);
        if (iterationLevelsBuilder_ == null) {
          iterationLevels_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00080000);
        } else {
          iterationLevelsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessInstance_descriptor;
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.getDefaultInstance();
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance build() {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      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) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.processType_ = processType_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.id_ = id_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.processId_ = processId_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.state_ = state_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.nodeInstanceCounter_ = nodeInstanceCounter_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.processXml_ = processXml_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.parentProcessInstanceId_ = parentProcessInstanceId_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          to_bitField0_ |= 0x00000080;
        }
        result.description_ = description_;
        if (((from_bitField0_ & 0x00000100) != 0)) {
          to_bitField0_ |= 0x00000100;
        }
        result.signalCompletion_ = signalCompletion_;
        if (((from_bitField0_ & 0x00000200) != 0)) {
          to_bitField0_ |= 0x00000200;
        }
        result.deploymentId_ = deploymentId_;
        if (((from_bitField0_ & 0x00000400) != 0)) {
          to_bitField0_ |= 0x00000400;
        }
        result.correlationKey_ = correlationKey_;
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.slaTimerId_ = slaTimerId_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.slaDueDate_ = slaDueDate_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.slaCompliance_ = slaCompliance_;
          to_bitField0_ |= 0x00002000;
        }
        if (swimlaneContextBuilder_ == null) {
          if (((bitField0_ & 0x00004000) != 0)) {
            swimlaneContext_ = java.util.Collections.unmodifiableList(swimlaneContext_);
            bitField0_ = (bitField0_ & ~0x00004000);
          }
          result.swimlaneContext_ = swimlaneContext_;
        } else {
          result.swimlaneContext_ = swimlaneContextBuilder_.build();
        }
        if (nodeInstanceBuilder_ == null) {
          if (((bitField0_ & 0x00008000) != 0)) {
            nodeInstance_ = java.util.Collections.unmodifiableList(nodeInstance_);
            bitField0_ = (bitField0_ & ~0x00008000);
          }
          result.nodeInstance_ = nodeInstance_;
        } else {
          result.nodeInstance_ = nodeInstanceBuilder_.build();
        }
        if (variableBuilder_ == null) {
          if (((bitField0_ & 0x00010000) != 0)) {
            variable_ = java.util.Collections.unmodifiableList(variable_);
            bitField0_ = (bitField0_ & ~0x00010000);
          }
          result.variable_ = variable_;
        } else {
          result.variable_ = variableBuilder_.build();
        }
        if (exclusiveGroupBuilder_ == null) {
          if (((bitField0_ & 0x00020000) != 0)) {
            exclusiveGroup_ = java.util.Collections.unmodifiableList(exclusiveGroup_);
            bitField0_ = (bitField0_ & ~0x00020000);
          }
          result.exclusiveGroup_ = exclusiveGroup_;
        } else {
          result.exclusiveGroup_ = exclusiveGroupBuilder_.build();
        }
        if (((bitField0_ & 0x00040000) != 0)) {
          completedNodeIds_ = completedNodeIds_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00040000);
        }
        result.completedNodeIds_ = completedNodeIds_;
        if (iterationLevelsBuilder_ == null) {
          if (((bitField0_ & 0x00080000) != 0)) {
            iterationLevels_ = java.util.Collections.unmodifiableList(iterationLevels_);
            bitField0_ = (bitField0_ & ~0x00080000);
          }
          result.iterationLevels_ = iterationLevels_;
        } else {
          result.iterationLevels_ = iterationLevelsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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 (other.hasProcessXml()) {
          bitField0_ |= 0x00000020;
          processXml_ = other.processXml_;
          onChanged();
        }
        if (other.hasParentProcessInstanceId()) {
          setParentProcessInstanceId(other.getParentProcessInstanceId());
        }
        if (other.hasDescription()) {
          bitField0_ |= 0x00000080;
          description_ = other.description_;
          onChanged();
        }
        if (other.hasSignalCompletion()) {
          setSignalCompletion(other.getSignalCompletion());
        }
        if (other.hasDeploymentId()) {
          bitField0_ |= 0x00000200;
          deploymentId_ = other.deploymentId_;
          onChanged();
        }
        if (other.hasCorrelationKey()) {
          bitField0_ |= 0x00000400;
          correlationKey_ = other.correlationKey_;
          onChanged();
        }
        if (other.hasSlaTimerId()) {
          setSlaTimerId(other.getSlaTimerId());
        }
        if (other.hasSlaDueDate()) {
          setSlaDueDate(other.getSlaDueDate());
        }
        if (other.hasSlaCompliance()) {
          setSlaCompliance(other.getSlaCompliance());
        }
        if (swimlaneContextBuilder_ == null) {
          if (!other.swimlaneContext_.isEmpty()) {
            if (swimlaneContext_.isEmpty()) {
              swimlaneContext_ = other.swimlaneContext_;
              bitField0_ = (bitField0_ & ~0x00004000);
            } else {
              ensureSwimlaneContextIsMutable();
              swimlaneContext_.addAll(other.swimlaneContext_);
            }
            onChanged();
          }
        } else {
          if (!other.swimlaneContext_.isEmpty()) {
            if (swimlaneContextBuilder_.isEmpty()) {
              swimlaneContextBuilder_.dispose();
              swimlaneContextBuilder_ = null;
              swimlaneContext_ = other.swimlaneContext_;
              bitField0_ = (bitField0_ & ~0x00004000);
              swimlaneContextBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSwimlaneContextFieldBuilder() : null;
            } else {
              swimlaneContextBuilder_.addAllMessages(other.swimlaneContext_);
            }
          }
        }
        if (nodeInstanceBuilder_ == null) {
          if (!other.nodeInstance_.isEmpty()) {
            if (nodeInstance_.isEmpty()) {
              nodeInstance_ = other.nodeInstance_;
              bitField0_ = (bitField0_ & ~0x00008000);
            } else {
              ensureNodeInstanceIsMutable();
              nodeInstance_.addAll(other.nodeInstance_);
            }
            onChanged();
          }
        } else {
          if (!other.nodeInstance_.isEmpty()) {
            if (nodeInstanceBuilder_.isEmpty()) {
              nodeInstanceBuilder_.dispose();
              nodeInstanceBuilder_ = null;
              nodeInstance_ = other.nodeInstance_;
              bitField0_ = (bitField0_ & ~0x00008000);
              nodeInstanceBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getNodeInstanceFieldBuilder() : null;
            } else {
              nodeInstanceBuilder_.addAllMessages(other.nodeInstance_);
            }
          }
        }
        if (variableBuilder_ == null) {
          if (!other.variable_.isEmpty()) {
            if (variable_.isEmpty()) {
              variable_ = other.variable_;
              bitField0_ = (bitField0_ & ~0x00010000);
            } else {
              ensureVariableIsMutable();
              variable_.addAll(other.variable_);
            }
            onChanged();
          }
        } else {
          if (!other.variable_.isEmpty()) {
            if (variableBuilder_.isEmpty()) {
              variableBuilder_.dispose();
              variableBuilder_ = null;
              variable_ = other.variable_;
              bitField0_ = (bitField0_ & ~0x00010000);
              variableBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getVariableFieldBuilder() : null;
            } else {
              variableBuilder_.addAllMessages(other.variable_);
            }
          }
        }
        if (exclusiveGroupBuilder_ == null) {
          if (!other.exclusiveGroup_.isEmpty()) {
            if (exclusiveGroup_.isEmpty()) {
              exclusiveGroup_ = other.exclusiveGroup_;
              bitField0_ = (bitField0_ & ~0x00020000);
            } else {
              ensureExclusiveGroupIsMutable();
              exclusiveGroup_.addAll(other.exclusiveGroup_);
            }
            onChanged();
          }
        } else {
          if (!other.exclusiveGroup_.isEmpty()) {
            if (exclusiveGroupBuilder_.isEmpty()) {
              exclusiveGroupBuilder_.dispose();
              exclusiveGroupBuilder_ = null;
              exclusiveGroup_ = other.exclusiveGroup_;
              bitField0_ = (bitField0_ & ~0x00020000);
              exclusiveGroupBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getExclusiveGroupFieldBuilder() : null;
            } else {
              exclusiveGroupBuilder_.addAllMessages(other.exclusiveGroup_);
            }
          }
        }
        if (!other.completedNodeIds_.isEmpty()) {
          if (completedNodeIds_.isEmpty()) {
            completedNodeIds_ = other.completedNodeIds_;
            bitField0_ = (bitField0_ & ~0x00040000);
          } else {
            ensureCompletedNodeIdsIsMutable();
            completedNodeIds_.addAll(other.completedNodeIds_);
          }
          onChanged();
        }
        if (iterationLevelsBuilder_ == null) {
          if (!other.iterationLevels_.isEmpty()) {
            if (iterationLevels_.isEmpty()) {
              iterationLevels_ = other.iterationLevels_;
              bitField0_ = (bitField0_ & ~0x00080000);
            } else {
              ensureIterationLevelsIsMutable();
              iterationLevels_.addAll(other.iterationLevels_);
            }
            onChanged();
          }
        } else {
          if (!other.iterationLevels_.isEmpty()) {
            if (iterationLevelsBuilder_.isEmpty()) {
              iterationLevelsBuilder_.dispose();
              iterationLevelsBuilder_ = null;
              iterationLevels_ = other.iterationLevels_;
              bitField0_ = (bitField0_ & ~0x00080000);
              iterationLevelsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIterationLevelsFieldBuilder() : null;
            } else {
              iterationLevelsBuilder_.addAllMessages(other.iterationLevels_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object processType_ = "";
      /**
       * <code>optional string process_type = 1;</code>
       * @return Whether the processType field is set.
       */
      public boolean hasProcessType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string process_type = 1;</code>
       * @return The processType.
       */
      public java.lang.String getProcessType() {
        java.lang.Object ref = processType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            processType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string process_type = 1;</code>
       * @return The bytes for processType.
       */
      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>
       * @param value The processType to set.
       * @return This builder for chaining.
       */
      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>
       * @return This builder for chaining.
       */
      public Builder clearProcessType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        processType_ = getDefaultInstance().getProcessType();
        onChanged();
        return this;
      }
      /**
       * <code>optional string process_type = 1;</code>
       * @param value The bytes for processType to set.
       * @return This builder for chaining.
       */
      public Builder setProcessTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        processType_ = value;
        onChanged();
        return this;
      }

      private long id_ ;
      /**
       * <code>optional int64 id = 2;</code>
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 id = 2;</code>
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }
      /**
       * <code>optional int64 id = 2;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {
        bitField0_ |= 0x00000002;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        id_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object processId_ = "";
      /**
       * <code>optional string process_id = 3;</code>
       * @return Whether the processId field is set.
       */
      public boolean hasProcessId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional string process_id = 3;</code>
       * @return The processId.
       */
      public java.lang.String getProcessId() {
        java.lang.Object ref = processId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            processId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string process_id = 3;</code>
       * @return The bytes for processId.
       */
      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>
       * @param value The processId to set.
       * @return This builder for chaining.
       */
      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>
       * @return This builder for chaining.
       */
      public Builder clearProcessId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        processId_ = getDefaultInstance().getProcessId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string process_id = 3;</code>
       * @param value The bytes for processId to set.
       * @return This builder for chaining.
       */
      public Builder setProcessIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        processId_ = value;
        onChanged();
        return this;
      }

      private int state_ ;
      /**
       * <code>optional int32 state = 4;</code>
       * @return Whether the state field is set.
       */
      @java.lang.Override
      public boolean hasState() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int32 state = 4;</code>
       * @return The state.
       */
      @java.lang.Override
      public int getState() {
        return state_;
      }
      /**
       * <code>optional int32 state = 4;</code>
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setState(int value) {
        bitField0_ |= 0x00000008;
        state_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 state = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000008);
        state_ = 0;
        onChanged();
        return this;
      }

      private long nodeInstanceCounter_ ;
      /**
       * <code>optional int64 node_instance_counter = 5;</code>
       * @return Whether the nodeInstanceCounter field is set.
       */
      @java.lang.Override
      public boolean hasNodeInstanceCounter() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int64 node_instance_counter = 5;</code>
       * @return The nodeInstanceCounter.
       */
      @java.lang.Override
      public long getNodeInstanceCounter() {
        return nodeInstanceCounter_;
      }
      /**
       * <code>optional int64 node_instance_counter = 5;</code>
       * @param value The nodeInstanceCounter to set.
       * @return This builder for chaining.
       */
      public Builder setNodeInstanceCounter(long value) {
        bitField0_ |= 0x00000010;
        nodeInstanceCounter_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 node_instance_counter = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearNodeInstanceCounter() {
        bitField0_ = (bitField0_ & ~0x00000010);
        nodeInstanceCounter_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object processXml_ = "";
      /**
       * <code>optional string process_xml = 11;</code>
       * @return Whether the processXml field is set.
       */
      public boolean hasProcessXml() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string process_xml = 11;</code>
       * @return The processXml.
       */
      public java.lang.String getProcessXml() {
        java.lang.Object ref = processXml_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            processXml_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string process_xml = 11;</code>
       * @return The bytes for processXml.
       */
      public com.google.protobuf.ByteString
          getProcessXmlBytes() {
        java.lang.Object ref = processXml_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          processXml_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string process_xml = 11;</code>
       * @param value The processXml to set.
       * @return This builder for chaining.
       */
      public Builder setProcessXml(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        processXml_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string process_xml = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearProcessXml() {
        bitField0_ = (bitField0_ & ~0x00000020);
        processXml_ = getDefaultInstance().getProcessXml();
        onChanged();
        return this;
      }
      /**
       * <code>optional string process_xml = 11;</code>
       * @param value The bytes for processXml to set.
       * @return This builder for chaining.
       */
      public Builder setProcessXmlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        processXml_ = value;
        onChanged();
        return this;
      }

      private long parentProcessInstanceId_ ;
      /**
       * <code>optional int64 parent_process_instance_id = 12;</code>
       * @return Whether the parentProcessInstanceId field is set.
       */
      @java.lang.Override
      public boolean hasParentProcessInstanceId() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional int64 parent_process_instance_id = 12;</code>
       * @return The parentProcessInstanceId.
       */
      @java.lang.Override
      public long getParentProcessInstanceId() {
        return parentProcessInstanceId_;
      }
      /**
       * <code>optional int64 parent_process_instance_id = 12;</code>
       * @param value The parentProcessInstanceId to set.
       * @return This builder for chaining.
       */
      public Builder setParentProcessInstanceId(long value) {
        bitField0_ |= 0x00000040;
        parentProcessInstanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 parent_process_instance_id = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearParentProcessInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000040);
        parentProcessInstanceId_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object description_ = "";
      /**
       * <code>optional string description = 15;</code>
       * @return Whether the description field is set.
       */
      public boolean hasDescription() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional string description = 15;</code>
       * @return The description.
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            description_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string description = 15;</code>
       * @return The bytes for description.
       */
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string description = 15;</code>
       * @param value The description to set.
       * @return This builder for chaining.
       */
      public Builder setDescription(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        description_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string description = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        bitField0_ = (bitField0_ & ~0x00000080);
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * <code>optional string description = 15;</code>
       * @param value The bytes for description to set.
       * @return This builder for chaining.
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        description_ = value;
        onChanged();
        return this;
      }

      private boolean signalCompletion_ = true;
      /**
       * <code>optional bool signal_completion = 16 [default = true];</code>
       * @return Whether the signalCompletion field is set.
       */
      @java.lang.Override
      public boolean hasSignalCompletion() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional bool signal_completion = 16 [default = true];</code>
       * @return The signalCompletion.
       */
      @java.lang.Override
      public boolean getSignalCompletion() {
        return signalCompletion_;
      }
      /**
       * <code>optional bool signal_completion = 16 [default = true];</code>
       * @param value The signalCompletion to set.
       * @return This builder for chaining.
       */
      public Builder setSignalCompletion(boolean value) {
        bitField0_ |= 0x00000100;
        signalCompletion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool signal_completion = 16 [default = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearSignalCompletion() {
        bitField0_ = (bitField0_ & ~0x00000100);
        signalCompletion_ = true;
        onChanged();
        return this;
      }

      private java.lang.Object deploymentId_ = "";
      /**
       * <code>optional string deploymentId = 17;</code>
       * @return Whether the deploymentId field is set.
       */
      public boolean hasDeploymentId() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional string deploymentId = 17;</code>
       * @return The deploymentId.
       */
      public java.lang.String getDeploymentId() {
        java.lang.Object ref = deploymentId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            deploymentId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string deploymentId = 17;</code>
       * @return The bytes for deploymentId.
       */
      public com.google.protobuf.ByteString
          getDeploymentIdBytes() {
        java.lang.Object ref = deploymentId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deploymentId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string deploymentId = 17;</code>
       * @param value The deploymentId to set.
       * @return This builder for chaining.
       */
      public Builder setDeploymentId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        deploymentId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string deploymentId = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeploymentId() {
        bitField0_ = (bitField0_ & ~0x00000200);
        deploymentId_ = getDefaultInstance().getDeploymentId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string deploymentId = 17;</code>
       * @param value The bytes for deploymentId to set.
       * @return This builder for chaining.
       */
      public Builder setDeploymentIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        deploymentId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object correlationKey_ = "";
      /**
       * <code>optional string correlation_key = 18;</code>
       * @return Whether the correlationKey field is set.
       */
      public boolean hasCorrelationKey() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional string correlation_key = 18;</code>
       * @return The correlationKey.
       */
      public java.lang.String getCorrelationKey() {
        java.lang.Object ref = correlationKey_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            correlationKey_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string correlation_key = 18;</code>
       * @return The bytes for correlationKey.
       */
      public com.google.protobuf.ByteString
          getCorrelationKeyBytes() {
        java.lang.Object ref = correlationKey_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          correlationKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string correlation_key = 18;</code>
       * @param value The correlationKey to set.
       * @return This builder for chaining.
       */
      public Builder setCorrelationKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        correlationKey_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string correlation_key = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearCorrelationKey() {
        bitField0_ = (bitField0_ & ~0x00000400);
        correlationKey_ = getDefaultInstance().getCorrelationKey();
        onChanged();
        return this;
      }
      /**
       * <code>optional string correlation_key = 18;</code>
       * @param value The bytes for correlationKey to set.
       * @return This builder for chaining.
       */
      public Builder setCorrelationKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        correlationKey_ = value;
        onChanged();
        return this;
      }

      private long slaTimerId_ ;
      /**
       * <code>optional int64 sla_timer_id = 19;</code>
       * @return Whether the slaTimerId field is set.
       */
      @java.lang.Override
      public boolean hasSlaTimerId() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional int64 sla_timer_id = 19;</code>
       * @return The slaTimerId.
       */
      @java.lang.Override
      public long getSlaTimerId() {
        return slaTimerId_;
      }
      /**
       * <code>optional int64 sla_timer_id = 19;</code>
       * @param value The slaTimerId to set.
       * @return This builder for chaining.
       */
      public Builder setSlaTimerId(long value) {
        bitField0_ |= 0x00000800;
        slaTimerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 sla_timer_id = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearSlaTimerId() {
        bitField0_ = (bitField0_ & ~0x00000800);
        slaTimerId_ = 0L;
        onChanged();
        return this;
      }

      private long slaDueDate_ ;
      /**
       * <code>optional int64 sla_due_date = 20;</code>
       * @return Whether the slaDueDate field is set.
       */
      @java.lang.Override
      public boolean hasSlaDueDate() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional int64 sla_due_date = 20;</code>
       * @return The slaDueDate.
       */
      @java.lang.Override
      public long getSlaDueDate() {
        return slaDueDate_;
      }
      /**
       * <code>optional int64 sla_due_date = 20;</code>
       * @param value The slaDueDate to set.
       * @return This builder for chaining.
       */
      public Builder setSlaDueDate(long value) {
        bitField0_ |= 0x00001000;
        slaDueDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 sla_due_date = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearSlaDueDate() {
        bitField0_ = (bitField0_ & ~0x00001000);
        slaDueDate_ = 0L;
        onChanged();
        return this;
      }

      private int slaCompliance_ ;
      /**
       * <code>optional int32 sla_compliance = 21;</code>
       * @return Whether the slaCompliance field is set.
       */
      @java.lang.Override
      public boolean hasSlaCompliance() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional int32 sla_compliance = 21;</code>
       * @return The slaCompliance.
       */
      @java.lang.Override
      public int getSlaCompliance() {
        return slaCompliance_;
      }
      /**
       * <code>optional int32 sla_compliance = 21;</code>
       * @param value The slaCompliance to set.
       * @return This builder for chaining.
       */
      public Builder setSlaCompliance(int value) {
        bitField0_ |= 0x00002000;
        slaCompliance_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 sla_compliance = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearSlaCompliance() {
        bitField0_ = (bitField0_ & ~0x00002000);
        slaCompliance_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance> swimlaneContext_ =
        java.util.Collections.emptyList();
      private void ensureSwimlaneContextIsMutable() {
        if (!((bitField0_ & 0x00004000) != 0)) {
          swimlaneContext_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance>(swimlaneContext_);
          bitField0_ |= 0x00004000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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();
          com.google.protobuf.AbstractMessageLite.Builder.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_ & ~0x00004000);
          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.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.SwimlaneContextInstanceOrBuilder>(
                  swimlaneContext_,
                  ((bitField0_ & 0x00004000) != 0),
                  getParentForChildren(),
                  isClean());
          swimlaneContext_ = null;
        }
        return swimlaneContextBuilder_;
      }

      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance> nodeInstance_ =
        java.util.Collections.emptyList();
      private void ensureNodeInstanceIsMutable() {
        if (!((bitField0_ & 0x00008000) != 0)) {
          nodeInstance_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance>(nodeInstance_);
          bitField0_ |= 0x00008000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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();
          com.google.protobuf.AbstractMessageLite.Builder.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_ & ~0x00008000);
          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.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.NodeInstanceOrBuilder>(
                  nodeInstance_,
                  ((bitField0_ & 0x00008000) != 0),
                  getParentForChildren(),
                  isClean());
          nodeInstance_ = null;
        }
        return nodeInstanceBuilder_;
      }

      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_ =
        java.util.Collections.emptyList();
      private void ensureVariableIsMutable() {
        if (!((bitField0_ & 0x00010000) != 0)) {
          variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>(variable_);
          bitField0_ |= 0x00010000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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();
          com.google.protobuf.AbstractMessageLite.Builder.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_ & ~0x00010000);
          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.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder>(
                  variable_,
                  ((bitField0_ & 0x00010000) != 0),
                  getParentForChildren(),
                  isClean());
          variable_ = null;
        }
        return variableBuilder_;
      }

      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance> exclusiveGroup_ =
        java.util.Collections.emptyList();
      private void ensureExclusiveGroupIsMutable() {
        if (!((bitField0_ & 0x00020000) != 0)) {
          exclusiveGroup_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance>(exclusiveGroup_);
          bitField0_ |= 0x00020000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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();
          com.google.protobuf.AbstractMessageLite.Builder.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_ & ~0x00020000);
          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.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance.ExclusiveGroupInstanceOrBuilder>(
                  exclusiveGroup_,
                  ((bitField0_ & 0x00020000) != 0),
                  getParentForChildren(),
                  isClean());
          exclusiveGroup_ = null;
        }
        return exclusiveGroupBuilder_;
      }

      private com.google.protobuf.LazyStringList completedNodeIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureCompletedNodeIdsIsMutable() {
        if (!((bitField0_ & 0x00040000) != 0)) {
          completedNodeIds_ = new com.google.protobuf.LazyStringArrayList(completedNodeIds_);
          bitField0_ |= 0x00040000;
         }
      }
      /**
       * <code>repeated string completedNodeIds = 13;</code>
       * @return A list containing the completedNodeIds.
       */
      public com.google.protobuf.ProtocolStringList
          getCompletedNodeIdsList() {
        return completedNodeIds_.getUnmodifiableView();
      }
      /**
       * <code>repeated string completedNodeIds = 13;</code>
       * @return The count of completedNodeIds.
       */
      public int getCompletedNodeIdsCount() {
        return completedNodeIds_.size();
      }
      /**
       * <code>repeated string completedNodeIds = 13;</code>
       * @param index The index of the element to return.
       * @return The completedNodeIds at the given index.
       */
      public java.lang.String getCompletedNodeIds(int index) {
        return completedNodeIds_.get(index);
      }
      /**
       * <code>repeated string completedNodeIds = 13;</code>
       * @param index The index of the value to return.
       * @return The bytes of the completedNodeIds at the given index.
       */
      public com.google.protobuf.ByteString
          getCompletedNodeIdsBytes(int index) {
        return completedNodeIds_.getByteString(index);
      }
      /**
       * <code>repeated string completedNodeIds = 13;</code>
       * @param index The index to set the value at.
       * @param value The completedNodeIds to set.
       * @return This builder for chaining.
       */
      public Builder setCompletedNodeIds(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCompletedNodeIdsIsMutable();
        completedNodeIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string completedNodeIds = 13;</code>
       * @param value The completedNodeIds to add.
       * @return This builder for chaining.
       */
      public Builder addCompletedNodeIds(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCompletedNodeIdsIsMutable();
        completedNodeIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string completedNodeIds = 13;</code>
       * @param values The completedNodeIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllCompletedNodeIds(
          java.lang.Iterable<java.lang.String> values) {
        ensureCompletedNodeIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, completedNodeIds_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string completedNodeIds = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearCompletedNodeIds() {
        completedNodeIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00040000);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string completedNodeIds = 13;</code>
       * @param value The bytes of the completedNodeIds to add.
       * @return This builder for chaining.
       */
      public Builder addCompletedNodeIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCompletedNodeIdsIsMutable();
        completedNodeIds_.add(value);
        onChanged();
        return this;
      }

      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> iterationLevels_ =
        java.util.Collections.emptyList();
      private void ensureIterationLevelsIsMutable() {
        if (!((bitField0_ & 0x00080000) != 0)) {
          iterationLevels_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel>(iterationLevels_);
          bitField0_ |= 0x00080000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jbpm.marshalling.impl.JBPMMessages.IterationLevel, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder, org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> iterationLevelsBuilder_;

      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> getIterationLevelsList() {
        if (iterationLevelsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(iterationLevels_);
        } else {
          return iterationLevelsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public int getIterationLevelsCount() {
        if (iterationLevelsBuilder_ == null) {
          return iterationLevels_.size();
        } else {
          return iterationLevelsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getIterationLevels(int index) {
        if (iterationLevelsBuilder_ == null) {
          return iterationLevels_.get(index);
        } else {
          return iterationLevelsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public Builder setIterationLevels(
          int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel value) {
        if (iterationLevelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIterationLevelsIsMutable();
          iterationLevels_.set(index, value);
          onChanged();
        } else {
          iterationLevelsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public Builder setIterationLevels(
          int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder builderForValue) {
        if (iterationLevelsBuilder_ == null) {
          ensureIterationLevelsIsMutable();
          iterationLevels_.set(index, builderForValue.build());
          onChanged();
        } else {
          iterationLevelsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public Builder addIterationLevels(org.jbpm.marshalling.impl.JBPMMessages.IterationLevel value) {
        if (iterationLevelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIterationLevelsIsMutable();
          iterationLevels_.add(value);
          onChanged();
        } else {
          iterationLevelsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public Builder addIterationLevels(
          int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel value) {
        if (iterationLevelsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIterationLevelsIsMutable();
          iterationLevels_.add(index, value);
          onChanged();
        } else {
          iterationLevelsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public Builder addIterationLevels(
          org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder builderForValue) {
        if (iterationLevelsBuilder_ == null) {
          ensureIterationLevelsIsMutable();
          iterationLevels_.add(builderForValue.build());
          onChanged();
        } else {
          iterationLevelsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public Builder addIterationLevels(
          int index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder builderForValue) {
        if (iterationLevelsBuilder_ == null) {
          ensureIterationLevelsIsMutable();
          iterationLevels_.add(index, builderForValue.build());
          onChanged();
        } else {
          iterationLevelsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public Builder addAllIterationLevels(
          java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevel> values) {
        if (iterationLevelsBuilder_ == null) {
          ensureIterationLevelsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, iterationLevels_);
          onChanged();
        } else {
          iterationLevelsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public Builder clearIterationLevels() {
        if (iterationLevelsBuilder_ == null) {
          iterationLevels_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00080000);
          onChanged();
        } else {
          iterationLevelsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public Builder removeIterationLevels(int index) {
        if (iterationLevelsBuilder_ == null) {
          ensureIterationLevelsIsMutable();
          iterationLevels_.remove(index);
          onChanged();
        } else {
          iterationLevelsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder getIterationLevelsBuilder(
          int index) {
        return getIterationLevelsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder getIterationLevelsOrBuilder(
          int index) {
        if (iterationLevelsBuilder_ == null) {
          return iterationLevels_.get(index);  } else {
          return iterationLevelsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
           getIterationLevelsOrBuilderList() {
        if (iterationLevelsBuilder_ != null) {
          return iterationLevelsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(iterationLevels_);
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder addIterationLevelsBuilder() {
        return getIterationLevelsFieldBuilder().addBuilder(
            org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder addIterationLevelsBuilder(
          int index) {
        return getIterationLevelsFieldBuilder().addBuilder(
            index, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.getDefaultInstance());
      }
      /**
       * <code>repeated .org.jbpm.marshalling.IterationLevel iterationLevels = 14;</code>
       */
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder> 
           getIterationLevelsBuilderList() {
        return getIterationLevelsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jbpm.marshalling.impl.JBPMMessages.IterationLevel, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder, org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder> 
          getIterationLevelsFieldBuilder() {
        if (iterationLevelsBuilder_ == null) {
          iterationLevelsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.IterationLevel, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder, org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder>(
                  iterationLevels_,
                  ((bitField0_ & 0x00080000) != 0),
                  getParentForChildren(),
                  isClean());
          iterationLevels_ = null;
        }
        return iterationLevelsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessInstance)
    }

    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessInstance)
    private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance();
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<ProcessInstance> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessInstance getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VariableOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.Variable)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string name = 1;</code>
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * <code>optional string name = 1;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>optional string name = 1;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <pre>
     * the actual object reference
     * </pre>
     *
     * <code>optional int32 strategy_index = 2;</code>
     * @return Whether the strategyIndex field is set.
     */
    boolean hasStrategyIndex();
    /**
     * <pre>
     * the actual object reference
     * </pre>
     *
     * <code>optional int32 strategy_index = 2;</code>
     * @return The strategyIndex.
     */
    int getStrategyIndex();

    /**
     * <code>optional bytes value = 3;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>optional bytes value = 3;</code>
     * @return The value.
     */
    com.google.protobuf.ByteString getValue();
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.Variable}
   */
  public static final class Variable extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.Variable)
      VariableOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Variable.newBuilder() to construct.
    private Variable(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Variable() {
      name_ = "";
      value_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Variable();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              name_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              strategyIndex_ = input.readInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              value_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.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);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <code>optional string name = 1;</code>
     * @return Whether the name field is set.
     */
    @java.lang.Override
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string name = 1;</code>
     * @return The name.
     */
    @java.lang.Override
    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>
     * @return The bytes for name.
     */
    @java.lang.Override
    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;
      }
    }

    public static final int STRATEGY_INDEX_FIELD_NUMBER = 2;
    private int strategyIndex_;
    /**
     * <pre>
     * the actual object reference
     * </pre>
     *
     * <code>optional int32 strategy_index = 2;</code>
     * @return Whether the strategyIndex field is set.
     */
    @java.lang.Override
    public boolean hasStrategyIndex() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * the actual object reference
     * </pre>
     *
     * <code>optional int32 strategy_index = 2;</code>
     * @return The strategyIndex.
     */
    @java.lang.Override
    public int getStrategyIndex() {
      return strategyIndex_;
    }

    public static final int VALUE_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString value_;
    /**
     * <code>optional bytes value = 3;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bytes value = 3;</code>
     * @return The value.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getValue() {
      return value_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, strategyIndex_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBytes(3, value_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, strategyIndex_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.Variable)) {
        return super.equals(obj);
      }
      org.jbpm.marshalling.impl.JBPMMessages.Variable other = (org.jbpm.marshalling.impl.JBPMMessages.Variable) obj;

      if (hasName() != other.hasName()) return false;
      if (hasName()) {
        if (!getName()
            .equals(other.getName())) return false;
      }
      if (hasStrategyIndex() != other.hasStrategyIndex()) return false;
      if (hasStrategyIndex()) {
        if (getStrategyIndex()
            != other.getStrategyIndex()) return false;
      }
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasStrategyIndex()) {
        hash = (37 * hash) + STRATEGY_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + getStrategyIndex();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.Variable parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.Variable prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.Variable)
        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;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      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;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_Variable_descriptor;
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.Variable getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.Variable.getDefaultInstance();
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.Variable build() {
        org.jbpm.marshalling.impl.JBPMMessages.Variable result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      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) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.strategyIndex_ = strategyIndex_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * <code>optional string name = 1;</code>
       * @return Whether the name field is set.
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string name = 1;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string name = 1;</code>
       * @return The bytes for name.
       */
      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>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      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>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 1;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private int strategyIndex_ ;
      /**
       * <pre>
       * the actual object reference
       * </pre>
       *
       * <code>optional int32 strategy_index = 2;</code>
       * @return Whether the strategyIndex field is set.
       */
      @java.lang.Override
      public boolean hasStrategyIndex() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * the actual object reference
       * </pre>
       *
       * <code>optional int32 strategy_index = 2;</code>
       * @return The strategyIndex.
       */
      @java.lang.Override
      public int getStrategyIndex() {
        return strategyIndex_;
      }
      /**
       * <pre>
       * the actual object reference
       * </pre>
       *
       * <code>optional int32 strategy_index = 2;</code>
       * @param value The strategyIndex to set.
       * @return This builder for chaining.
       */
      public Builder setStrategyIndex(int value) {
        bitField0_ |= 0x00000002;
        strategyIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * the actual object reference
       * </pre>
       *
       * <code>optional int32 strategy_index = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStrategyIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        strategyIndex_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes value = 3;</code>
       * @return Whether the value field is set.
       */
      @java.lang.Override
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bytes value = 3;</code>
       * @return The value.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getValue() {
        return value_;
      }
      /**
       * <code>optional bytes value = 3;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      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>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.Variable)
    }

    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.Variable)
    private static final org.jbpm.marshalling.impl.JBPMMessages.Variable DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.Variable();
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.Variable getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<Variable> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.Variable getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkItemOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.WorkItem)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int64 id = 1;</code>
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * <code>optional int64 id = 1;</code>
     * @return The id.
     */
    long getId();

    /**
     * <code>optional int64 process_instances_id = 2;</code>
     * @return Whether the processInstancesId field is set.
     */
    boolean hasProcessInstancesId();
    /**
     * <code>optional int64 process_instances_id = 2;</code>
     * @return The processInstancesId.
     */
    long getProcessInstancesId();

    /**
     * <code>optional string name = 3;</code>
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * <code>optional string name = 3;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>optional string name = 3;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>optional int32 state = 4;</code>
     * @return Whether the state field is set.
     */
    boolean hasState();
    /**
     * <code>optional int32 state = 4;</code>
     * @return The state.
     */
    int getState();

    /**
     * <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);

    /**
     * <code>optional string deployment_id = 6;</code>
     * @return Whether the deploymentId field is set.
     */
    boolean hasDeploymentId();
    /**
     * <code>optional string deployment_id = 6;</code>
     * @return The deploymentId.
     */
    java.lang.String getDeploymentId();
    /**
     * <code>optional string deployment_id = 6;</code>
     * @return The bytes for deploymentId.
     */
    com.google.protobuf.ByteString
        getDeploymentIdBytes();

    /**
     * <code>optional int64 node_instance_id = 7;</code>
     * @return Whether the nodeInstanceId field is set.
     */
    boolean hasNodeInstanceId();
    /**
     * <code>optional int64 node_instance_id = 7;</code>
     * @return The nodeInstanceId.
     */
    long getNodeInstanceId();

    /**
     * <code>optional int64 node_id = 8;</code>
     * @return Whether the nodeId field is set.
     */
    boolean hasNodeId();
    /**
     * <code>optional int64 node_id = 8;</code>
     * @return The nodeId.
     */
    long getNodeId();
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.WorkItem}
   */
  public static final class WorkItem extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.WorkItem)
      WorkItemOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use WorkItem.newBuilder() to construct.
    private WorkItem(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private WorkItem() {
      name_ = "";
      variable_ = java.util.Collections.emptyList();
      deploymentId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new WorkItem();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 8: {
              bitField0_ |= 0x00000001;
              id_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              processInstancesId_ = input.readInt64();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              name_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              state_ = input.readInt32();
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                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;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              deploymentId_ = bs;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              nodeInstanceId_ = input.readInt64();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000040;
              nodeId_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) != 0)) {
          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;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.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);
    }

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * <code>optional int64 id = 1;</code>
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int64 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }

    public static final int PROCESS_INSTANCES_ID_FIELD_NUMBER = 2;
    private long processInstancesId_;
    /**
     * <code>optional int64 process_instances_id = 2;</code>
     * @return Whether the processInstancesId field is set.
     */
    @java.lang.Override
    public boolean hasProcessInstancesId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 process_instances_id = 2;</code>
     * @return The processInstancesId.
     */
    @java.lang.Override
    public long getProcessInstancesId() {
      return processInstancesId_;
    }

    public static final int NAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object name_;
    /**
     * <code>optional string name = 3;</code>
     * @return Whether the name field is set.
     */
    @java.lang.Override
    public boolean hasName() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string name = 3;</code>
     * @return The name.
     */
    @java.lang.Override
    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>
     * @return The bytes for name.
     */
    @java.lang.Override
    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;
      }
    }

    public static final int STATE_FIELD_NUMBER = 4;
    private int state_;
    /**
     * <code>optional int32 state = 4;</code>
     * @return Whether the state field is set.
     */
    @java.lang.Override
    public boolean hasState() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int32 state = 4;</code>
     * @return The state.
     */
    @java.lang.Override
    public int getState() {
      return state_;
    }

    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>
     */
    @java.lang.Override
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    @java.lang.Override
    public int getVariableCount() {
      return variable_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
      return variable_.get(index);
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 5;</code>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index) {
      return variable_.get(index);
    }

    public static final int DEPLOYMENT_ID_FIELD_NUMBER = 6;
    private volatile java.lang.Object deploymentId_;
    /**
     * <code>optional string deployment_id = 6;</code>
     * @return Whether the deploymentId field is set.
     */
    @java.lang.Override
    public boolean hasDeploymentId() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string deployment_id = 6;</code>
     * @return The deploymentId.
     */
    @java.lang.Override
    public java.lang.String getDeploymentId() {
      java.lang.Object ref = deploymentId_;
      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()) {
          deploymentId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string deployment_id = 6;</code>
     * @return The bytes for deploymentId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeploymentIdBytes() {
      java.lang.Object ref = deploymentId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deploymentId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NODE_INSTANCE_ID_FIELD_NUMBER = 7;
    private long nodeInstanceId_;
    /**
     * <code>optional int64 node_instance_id = 7;</code>
     * @return Whether the nodeInstanceId field is set.
     */
    @java.lang.Override
    public boolean hasNodeInstanceId() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional int64 node_instance_id = 7;</code>
     * @return The nodeInstanceId.
     */
    @java.lang.Override
    public long getNodeInstanceId() {
      return nodeInstanceId_;
    }

    public static final int NODE_ID_FIELD_NUMBER = 8;
    private long nodeId_;
    /**
     * <code>optional int64 node_id = 8;</code>
     * @return Whether the nodeId field is set.
     */
    @java.lang.Override
    public boolean hasNodeId() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int64 node_id = 8;</code>
     * @return The nodeId.
     */
    @java.lang.Override
    public long getNodeId() {
      return nodeId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, processInstancesId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt32(4, state_);
      }
      for (int i = 0; i < variable_.size(); i++) {
        output.writeMessage(5, variable_.get(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, deploymentId_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeInt64(7, nodeInstanceId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt64(8, nodeId_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, processInstancesId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        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));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, deploymentId_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, nodeInstanceId_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, nodeId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.WorkItem)) {
        return super.equals(obj);
      }
      org.jbpm.marshalling.impl.JBPMMessages.WorkItem other = (org.jbpm.marshalling.impl.JBPMMessages.WorkItem) obj;

      if (hasId() != other.hasId()) return false;
      if (hasId()) {
        if (getId()
            != other.getId()) return false;
      }
      if (hasProcessInstancesId() != other.hasProcessInstancesId()) return false;
      if (hasProcessInstancesId()) {
        if (getProcessInstancesId()
            != other.getProcessInstancesId()) return false;
      }
      if (hasName() != other.hasName()) return false;
      if (hasName()) {
        if (!getName()
            .equals(other.getName())) return false;
      }
      if (hasState() != other.hasState()) return false;
      if (hasState()) {
        if (getState()
            != other.getState()) return false;
      }
      if (!getVariableList()
          .equals(other.getVariableList())) return false;
      if (hasDeploymentId() != other.hasDeploymentId()) return false;
      if (hasDeploymentId()) {
        if (!getDeploymentId()
            .equals(other.getDeploymentId())) return false;
      }
      if (hasNodeInstanceId() != other.hasNodeInstanceId()) return false;
      if (hasNodeInstanceId()) {
        if (getNodeInstanceId()
            != other.getNodeInstanceId()) return false;
      }
      if (hasNodeId() != other.hasNodeId()) return false;
      if (hasNodeId()) {
        if (getNodeId()
            != other.getNodeId()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getId());
      }
      if (hasProcessInstancesId()) {
        hash = (37 * hash) + PROCESS_INSTANCES_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getProcessInstancesId());
      }
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasState()) {
        hash = (37 * hash) + STATE_FIELD_NUMBER;
        hash = (53 * hash) + getState();
      }
      if (getVariableCount() > 0) {
        hash = (37 * hash) + VARIABLE_FIELD_NUMBER;
        hash = (53 * hash) + getVariableList().hashCode();
      }
      if (hasDeploymentId()) {
        hash = (37 * hash) + DEPLOYMENT_ID_FIELD_NUMBER;
        hash = (53 * hash) + getDeploymentId().hashCode();
      }
      if (hasNodeInstanceId()) {
        hash = (37 * hash) + NODE_INSTANCE_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNodeInstanceId());
      }
      if (hasNodeId()) {
        hash = (37 * hash) + NODE_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNodeId());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.WorkItem prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.WorkItem)
        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;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getVariableFieldBuilder();
        }
      }
      @java.lang.Override
      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();
        }
        deploymentId_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        nodeInstanceId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000040);
        nodeId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_WorkItem_descriptor;
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.WorkItem getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.WorkItem.getDefaultInstance();
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.WorkItem build() {
        org.jbpm.marshalling.impl.JBPMMessages.WorkItem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      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) != 0)) {
          result.id_ = id_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.processInstancesId_ = processInstancesId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.state_ = state_;
          to_bitField0_ |= 0x00000008;
        }
        if (variableBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            variable_ = java.util.Collections.unmodifiableList(variable_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.variable_ = variable_;
        } else {
          result.variable_ = variableBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.deploymentId_ = deploymentId_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.nodeInstanceId_ = nodeInstanceId_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.nodeId_ = nodeId_;
          to_bitField0_ |= 0x00000040;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getVariableFieldBuilder() : null;
            } else {
              variableBuilder_.addAllMessages(other.variable_);
            }
          }
        }
        if (other.hasDeploymentId()) {
          bitField0_ |= 0x00000020;
          deploymentId_ = other.deploymentId_;
          onChanged();
        }
        if (other.hasNodeInstanceId()) {
          setNodeInstanceId(other.getNodeInstanceId());
        }
        if (other.hasNodeId()) {
          setNodeId(other.getNodeId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long id_ ;
      /**
       * <code>optional int64 id = 1;</code>
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int64 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }
      /**
       * <code>optional int64 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

      private long processInstancesId_ ;
      /**
       * <code>optional int64 process_instances_id = 2;</code>
       * @return Whether the processInstancesId field is set.
       */
      @java.lang.Override
      public boolean hasProcessInstancesId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 process_instances_id = 2;</code>
       * @return The processInstancesId.
       */
      @java.lang.Override
      public long getProcessInstancesId() {
        return processInstancesId_;
      }
      /**
       * <code>optional int64 process_instances_id = 2;</code>
       * @param value The processInstancesId to set.
       * @return This builder for chaining.
       */
      public Builder setProcessInstancesId(long value) {
        bitField0_ |= 0x00000002;
        processInstancesId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 process_instances_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearProcessInstancesId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        processInstancesId_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * <code>optional string name = 3;</code>
       * @return Whether the name field is set.
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional string name = 3;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string name = 3;</code>
       * @return The bytes for name.
       */
      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>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      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>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>optional string name = 3;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        name_ = value;
        onChanged();
        return this;
      }

      private int state_ ;
      /**
       * <code>optional int32 state = 4;</code>
       * @return Whether the state field is set.
       */
      @java.lang.Override
      public boolean hasState() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int32 state = 4;</code>
       * @return The state.
       */
      @java.lang.Override
      public int getState() {
        return state_;
      }
      /**
       * <code>optional int32 state = 4;</code>
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setState(int value) {
        bitField0_ |= 0x00000008;
        state_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 state = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000008);
        state_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_ =
        java.util.Collections.emptyList();
      private void ensureVariableIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>(variable_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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();
          com.google.protobuf.AbstractMessageLite.Builder.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.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder>(
                  variable_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          variable_ = null;
        }
        return variableBuilder_;
      }

      private java.lang.Object deploymentId_ = "";
      /**
       * <code>optional string deployment_id = 6;</code>
       * @return Whether the deploymentId field is set.
       */
      public boolean hasDeploymentId() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string deployment_id = 6;</code>
       * @return The deploymentId.
       */
      public java.lang.String getDeploymentId() {
        java.lang.Object ref = deploymentId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            deploymentId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string deployment_id = 6;</code>
       * @return The bytes for deploymentId.
       */
      public com.google.protobuf.ByteString
          getDeploymentIdBytes() {
        java.lang.Object ref = deploymentId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deploymentId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string deployment_id = 6;</code>
       * @param value The deploymentId to set.
       * @return This builder for chaining.
       */
      public Builder setDeploymentId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        deploymentId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string deployment_id = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeploymentId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deploymentId_ = getDefaultInstance().getDeploymentId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string deployment_id = 6;</code>
       * @param value The bytes for deploymentId to set.
       * @return This builder for chaining.
       */
      public Builder setDeploymentIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        deploymentId_ = value;
        onChanged();
        return this;
      }

      private long nodeInstanceId_ ;
      /**
       * <code>optional int64 node_instance_id = 7;</code>
       * @return Whether the nodeInstanceId field is set.
       */
      @java.lang.Override
      public boolean hasNodeInstanceId() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional int64 node_instance_id = 7;</code>
       * @return The nodeInstanceId.
       */
      @java.lang.Override
      public long getNodeInstanceId() {
        return nodeInstanceId_;
      }
      /**
       * <code>optional int64 node_instance_id = 7;</code>
       * @param value The nodeInstanceId to set.
       * @return This builder for chaining.
       */
      public Builder setNodeInstanceId(long value) {
        bitField0_ |= 0x00000040;
        nodeInstanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 node_instance_id = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearNodeInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000040);
        nodeInstanceId_ = 0L;
        onChanged();
        return this;
      }

      private long nodeId_ ;
      /**
       * <code>optional int64 node_id = 8;</code>
       * @return Whether the nodeId field is set.
       */
      @java.lang.Override
      public boolean hasNodeId() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional int64 node_id = 8;</code>
       * @return The nodeId.
       */
      @java.lang.Override
      public long getNodeId() {
        return nodeId_;
      }
      /**
       * <code>optional int64 node_id = 8;</code>
       * @param value The nodeId to set.
       * @return This builder for chaining.
       */
      public Builder setNodeId(long value) {
        bitField0_ |= 0x00000080;
        nodeId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 node_id = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearNodeId() {
        bitField0_ = (bitField0_ & ~0x00000080);
        nodeId_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.WorkItem)
    }

    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.WorkItem)
    private static final org.jbpm.marshalling.impl.JBPMMessages.WorkItem DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.WorkItem();
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.WorkItem getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<WorkItem> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.WorkItem getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProcessTimerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessTimer)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     * @return Whether the timer field is set.
     */
    boolean hasTimer();
    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     * @return The timer.
     */
    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();

    /**
     * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
     * @return Whether the trigger field is set.
     */
    boolean hasTrigger();
    /**
     * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
     * @return The trigger.
     */
    org.drools.serialization.protobuf.ProtobufMessages.Trigger getTrigger();
    /**
     * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
     */
    org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder getTriggerOrBuilder();
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.ProcessTimer}
   */
  public static final class ProcessTimer extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessTimer)
      ProcessTimerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ProcessTimer.newBuilder() to construct.
    private ProcessTimer(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProcessTimer() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ProcessTimer();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                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.serialization.protobuf.ProtobufMessages.Trigger.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = trigger_.toBuilder();
              }
              trigger_ = input.readMessage(org.drools.serialization.protobuf.ProtobufMessages.Trigger.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(trigger_);
                trigger_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.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 interface TimerInstanceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.ProcessTimer.TimerInstance)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional int64 id = 1;</code>
       * @return Whether the id field is set.
       */
      boolean hasId();
      /**
       * <code>optional int64 id = 1;</code>
       * @return The id.
       */
      long getId();

      /**
       * <code>optional int64 timer_id = 2;</code>
       * @return Whether the timerId field is set.
       */
      boolean hasTimerId();
      /**
       * <code>optional int64 timer_id = 2;</code>
       * @return The timerId.
       */
      long getTimerId();

      /**
       * <code>optional int64 delay = 3;</code>
       * @return Whether the delay field is set.
       */
      boolean hasDelay();
      /**
       * <code>optional int64 delay = 3;</code>
       * @return The delay.
       */
      long getDelay();

      /**
       * <code>optional int64 period = 4;</code>
       * @return Whether the period field is set.
       */
      boolean hasPeriod();
      /**
       * <code>optional int64 period = 4;</code>
       * @return The period.
       */
      long getPeriod();

      /**
       * <code>optional int64 process_instance_id = 5;</code>
       * @return Whether the processInstanceId field is set.
       */
      boolean hasProcessInstanceId();
      /**
       * <code>optional int64 process_instance_id = 5;</code>
       * @return The processInstanceId.
       */
      long getProcessInstanceId();

      /**
       * <code>optional int64 activated_time = 6;</code>
       * @return Whether the activatedTime field is set.
       */
      boolean hasActivatedTime();
      /**
       * <code>optional int64 activated_time = 6;</code>
       * @return The activatedTime.
       */
      long getActivatedTime();

      /**
       * <code>optional int64 last_triggered = 7;</code>
       * @return Whether the lastTriggered field is set.
       */
      boolean hasLastTriggered();
      /**
       * <code>optional int64 last_triggered = 7;</code>
       * @return The lastTriggered.
       */
      long getLastTriggered();

      /**
       * <code>optional int32 DEPRECATED_sessionId = 8;</code>
       * @return Whether the dEPRECATEDSessionId field is set.
       */
      boolean hasDEPRECATEDSessionId();
      /**
       * <code>optional int32 DEPRECATED_sessionId = 8;</code>
       * @return The dEPRECATEDSessionId.
       */
      int getDEPRECATEDSessionId();

      /**
       * <code>optional int64 sessionId = 9;</code>
       * @return Whether the sessionId field is set.
       */
      boolean hasSessionId();
      /**
       * <code>optional int64 sessionId = 9;</code>
       * @return The sessionId.
       */
      long getSessionId();

      /**
       * <code>optional int32 repeatLimit = 10;</code>
       * @return Whether the repeatLimit field is set.
       */
      boolean hasRepeatLimit();
      /**
       * <code>optional int32 repeatLimit = 10;</code>
       * @return The repeatLimit.
       */
      int getRepeatLimit();

      /**
       * <code>optional string name = 11;</code>
       * @return Whether the name field is set.
       */
      boolean hasName();
      /**
       * <code>optional string name = 11;</code>
       * @return The name.
       */
      java.lang.String getName();
      /**
       * <code>optional string name = 11;</code>
       * @return The bytes for name.
       */
      com.google.protobuf.ByteString
          getNameBytes();
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.ProcessTimer.TimerInstance}
     */
    public static final class TimerInstance extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.ProcessTimer.TimerInstance)
        TimerInstanceOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use TimerInstance.newBuilder() to construct.
      private TimerInstance(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private TimerInstance() {
        name_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new TimerInstance();
      }

      @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 {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              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;
              }
              case 64: {
                bitField0_ |= 0x00000080;
                dEPRECATEDSessionId_ = input.readInt32();
                break;
              }
              case 72: {
                bitField0_ |= 0x00000100;
                sessionId_ = input.readInt64();
                break;
              }
              case 80: {
                bitField0_ |= 0x00000200;
                repeatLimit_ = input.readInt32();
                break;
              }
              case 90: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000400;
                name_ = bs;
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).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;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.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);
      }

      private int bitField0_;
      public static final int ID_FIELD_NUMBER = 1;
      private long id_;
      /**
       * <code>optional int64 id = 1;</code>
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int64 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }

      public static final int TIMER_ID_FIELD_NUMBER = 2;
      private long timerId_;
      /**
       * <code>optional int64 timer_id = 2;</code>
       * @return Whether the timerId field is set.
       */
      @java.lang.Override
      public boolean hasTimerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 timer_id = 2;</code>
       * @return The timerId.
       */
      @java.lang.Override
      public long getTimerId() {
        return timerId_;
      }

      public static final int DELAY_FIELD_NUMBER = 3;
      private long delay_;
      /**
       * <code>optional int64 delay = 3;</code>
       * @return Whether the delay field is set.
       */
      @java.lang.Override
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 delay = 3;</code>
       * @return The delay.
       */
      @java.lang.Override
      public long getDelay() {
        return delay_;
      }

      public static final int PERIOD_FIELD_NUMBER = 4;
      private long period_;
      /**
       * <code>optional int64 period = 4;</code>
       * @return Whether the period field is set.
       */
      @java.lang.Override
      public boolean hasPeriod() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int64 period = 4;</code>
       * @return The period.
       */
      @java.lang.Override
      public long getPeriod() {
        return period_;
      }

      public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 5;
      private long processInstanceId_;
      /**
       * <code>optional int64 process_instance_id = 5;</code>
       * @return Whether the processInstanceId field is set.
       */
      @java.lang.Override
      public boolean hasProcessInstanceId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int64 process_instance_id = 5;</code>
       * @return The processInstanceId.
       */
      @java.lang.Override
      public long getProcessInstanceId() {
        return processInstanceId_;
      }

      public static final int ACTIVATED_TIME_FIELD_NUMBER = 6;
      private long activatedTime_;
      /**
       * <code>optional int64 activated_time = 6;</code>
       * @return Whether the activatedTime field is set.
       */
      @java.lang.Override
      public boolean hasActivatedTime() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional int64 activated_time = 6;</code>
       * @return The activatedTime.
       */
      @java.lang.Override
      public long getActivatedTime() {
        return activatedTime_;
      }

      public static final int LAST_TRIGGERED_FIELD_NUMBER = 7;
      private long lastTriggered_;
      /**
       * <code>optional int64 last_triggered = 7;</code>
       * @return Whether the lastTriggered field is set.
       */
      @java.lang.Override
      public boolean hasLastTriggered() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional int64 last_triggered = 7;</code>
       * @return The lastTriggered.
       */
      @java.lang.Override
      public long getLastTriggered() {
        return lastTriggered_;
      }

      public static final int DEPRECATED_SESSIONID_FIELD_NUMBER = 8;
      private int dEPRECATEDSessionId_;
      /**
       * <code>optional int32 DEPRECATED_sessionId = 8;</code>
       * @return Whether the dEPRECATEDSessionId field is set.
       */
      @java.lang.Override
      public boolean hasDEPRECATEDSessionId() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional int32 DEPRECATED_sessionId = 8;</code>
       * @return The dEPRECATEDSessionId.
       */
      @java.lang.Override
      public int getDEPRECATEDSessionId() {
        return dEPRECATEDSessionId_;
      }

      public static final int SESSIONID_FIELD_NUMBER = 9;
      private long sessionId_;
      /**
       * <code>optional int64 sessionId = 9;</code>
       * @return Whether the sessionId field is set.
       */
      @java.lang.Override
      public boolean hasSessionId() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional int64 sessionId = 9;</code>
       * @return The sessionId.
       */
      @java.lang.Override
      public long getSessionId() {
        return sessionId_;
      }

      public static final int REPEATLIMIT_FIELD_NUMBER = 10;
      private int repeatLimit_;
      /**
       * <code>optional int32 repeatLimit = 10;</code>
       * @return Whether the repeatLimit field is set.
       */
      @java.lang.Override
      public boolean hasRepeatLimit() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional int32 repeatLimit = 10;</code>
       * @return The repeatLimit.
       */
      @java.lang.Override
      public int getRepeatLimit() {
        return repeatLimit_;
      }

      public static final int NAME_FIELD_NUMBER = 11;
      private volatile java.lang.Object name_;
      /**
       * <code>optional string name = 11;</code>
       * @return Whether the name field is set.
       */
      @java.lang.Override
      public boolean hasName() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional string name = 11;</code>
       * @return The name.
       */
      @java.lang.Override
      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 = 11;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      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;
        }
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeInt64(1, id_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeInt64(2, timerId_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeInt64(3, delay_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          output.writeInt64(4, period_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          output.writeInt64(5, processInstanceId_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          output.writeInt64(6, activatedTime_);
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          output.writeInt64(7, lastTriggered_);
        }
        if (((bitField0_ & 0x00000080) != 0)) {
          output.writeInt32(8, dEPRECATEDSessionId_);
        }
        if (((bitField0_ & 0x00000100) != 0)) {
          output.writeInt64(9, sessionId_);
        }
        if (((bitField0_ & 0x00000200) != 0)) {
          output.writeInt32(10, repeatLimit_);
        }
        if (((bitField0_ & 0x00000400) != 0)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 11, name_);
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, id_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, timerId_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, delay_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(4, period_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(5, processInstanceId_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(6, activatedTime_);
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(7, lastTriggered_);
        }
        if (((bitField0_ & 0x00000080) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(8, dEPRECATEDSessionId_);
        }
        if (((bitField0_ & 0x00000100) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(9, sessionId_);
        }
        if (((bitField0_ & 0x00000200) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(10, repeatLimit_);
        }
        if (((bitField0_ & 0x00000400) != 0)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, name_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance)) {
          return super.equals(obj);
        }
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance) obj;

        if (hasId() != other.hasId()) return false;
        if (hasId()) {
          if (getId()
              != other.getId()) return false;
        }
        if (hasTimerId() != other.hasTimerId()) return false;
        if (hasTimerId()) {
          if (getTimerId()
              != other.getTimerId()) return false;
        }
        if (hasDelay() != other.hasDelay()) return false;
        if (hasDelay()) {
          if (getDelay()
              != other.getDelay()) return false;
        }
        if (hasPeriod() != other.hasPeriod()) return false;
        if (hasPeriod()) {
          if (getPeriod()
              != other.getPeriod()) return false;
        }
        if (hasProcessInstanceId() != other.hasProcessInstanceId()) return false;
        if (hasProcessInstanceId()) {
          if (getProcessInstanceId()
              != other.getProcessInstanceId()) return false;
        }
        if (hasActivatedTime() != other.hasActivatedTime()) return false;
        if (hasActivatedTime()) {
          if (getActivatedTime()
              != other.getActivatedTime()) return false;
        }
        if (hasLastTriggered() != other.hasLastTriggered()) return false;
        if (hasLastTriggered()) {
          if (getLastTriggered()
              != other.getLastTriggered()) return false;
        }
        if (hasDEPRECATEDSessionId() != other.hasDEPRECATEDSessionId()) return false;
        if (hasDEPRECATEDSessionId()) {
          if (getDEPRECATEDSessionId()
              != other.getDEPRECATEDSessionId()) return false;
        }
        if (hasSessionId() != other.hasSessionId()) return false;
        if (hasSessionId()) {
          if (getSessionId()
              != other.getSessionId()) return false;
        }
        if (hasRepeatLimit() != other.hasRepeatLimit()) return false;
        if (hasRepeatLimit()) {
          if (getRepeatLimit()
              != other.getRepeatLimit()) return false;
        }
        if (hasName() != other.hasName()) return false;
        if (hasName()) {
          if (!getName()
              .equals(other.getName())) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasId()) {
          hash = (37 * hash) + ID_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getId());
        }
        if (hasTimerId()) {
          hash = (37 * hash) + TIMER_ID_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getTimerId());
        }
        if (hasDelay()) {
          hash = (37 * hash) + DELAY_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getDelay());
        }
        if (hasPeriod()) {
          hash = (37 * hash) + PERIOD_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getPeriod());
        }
        if (hasProcessInstanceId()) {
          hash = (37 * hash) + PROCESS_INSTANCE_ID_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getProcessInstanceId());
        }
        if (hasActivatedTime()) {
          hash = (37 * hash) + ACTIVATED_TIME_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getActivatedTime());
        }
        if (hasLastTriggered()) {
          hash = (37 * hash) + LAST_TRIGGERED_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getLastTriggered());
        }
        if (hasDEPRECATEDSessionId()) {
          hash = (37 * hash) + DEPRECATED_SESSIONID_FIELD_NUMBER;
          hash = (53 * hash) + getDEPRECATEDSessionId();
        }
        if (hasSessionId()) {
          hash = (37 * hash) + SESSIONID_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getSessionId());
        }
        if (hasRepeatLimit()) {
          hash = (37 * hash) + REPEATLIMIT_FIELD_NUMBER;
          hash = (53 * hash) + getRepeatLimit();
        }
        if (hasName()) {
          hash = (37 * hash) + NAME_FIELD_NUMBER;
          hash = (53 * hash) + getName().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          java.nio.ByteBuffer 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(
          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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessTimer.TimerInstance)
          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;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        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);
          dEPRECATEDSessionId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000080);
          sessionId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000100);
          repeatLimit_ = 0;
          bitField0_ = (bitField0_ & ~0x00000200);
          name_ = "";
          bitField0_ = (bitField0_ & ~0x00000400);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_descriptor;
        }

        @java.lang.Override
        public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getDefaultInstanceForType() {
          return org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance();
        }

        @java.lang.Override
        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;
        }

        @java.lang.Override
        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) != 0)) {
            result.id_ = id_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.timerId_ = timerId_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.delay_ = delay_;
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.period_ = period_;
            to_bitField0_ |= 0x00000008;
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.processInstanceId_ = processInstanceId_;
            to_bitField0_ |= 0x00000010;
          }
          if (((from_bitField0_ & 0x00000020) != 0)) {
            result.activatedTime_ = activatedTime_;
            to_bitField0_ |= 0x00000020;
          }
          if (((from_bitField0_ & 0x00000040) != 0)) {
            result.lastTriggered_ = lastTriggered_;
            to_bitField0_ |= 0x00000040;
          }
          if (((from_bitField0_ & 0x00000080) != 0)) {
            result.dEPRECATEDSessionId_ = dEPRECATEDSessionId_;
            to_bitField0_ |= 0x00000080;
          }
          if (((from_bitField0_ & 0x00000100) != 0)) {
            result.sessionId_ = sessionId_;
            to_bitField0_ |= 0x00000100;
          }
          if (((from_bitField0_ & 0x00000200) != 0)) {
            result.repeatLimit_ = repeatLimit_;
            to_bitField0_ |= 0x00000200;
          }
          if (((from_bitField0_ & 0x00000400) != 0)) {
            to_bitField0_ |= 0x00000400;
          }
          result.name_ = name_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        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());
          }
          if (other.hasDEPRECATEDSessionId()) {
            setDEPRECATEDSessionId(other.getDEPRECATEDSessionId());
          }
          if (other.hasSessionId()) {
            setSessionId(other.getSessionId());
          }
          if (other.hasRepeatLimit()) {
            setRepeatLimit(other.getRepeatLimit());
          }
          if (other.hasName()) {
            bitField0_ |= 0x00000400;
            name_ = other.name_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        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.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private long id_ ;
        /**
         * <code>optional int64 id = 1;</code>
         * @return Whether the id field is set.
         */
        @java.lang.Override
        public boolean hasId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional int64 id = 1;</code>
         * @return The id.
         */
        @java.lang.Override
        public long getId() {
          return id_;
        }
        /**
         * <code>optional int64 id = 1;</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(long value) {
          bitField0_ |= 0x00000001;
          id_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 id = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = 0L;
          onChanged();
          return this;
        }

        private long timerId_ ;
        /**
         * <code>optional int64 timer_id = 2;</code>
         * @return Whether the timerId field is set.
         */
        @java.lang.Override
        public boolean hasTimerId() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional int64 timer_id = 2;</code>
         * @return The timerId.
         */
        @java.lang.Override
        public long getTimerId() {
          return timerId_;
        }
        /**
         * <code>optional int64 timer_id = 2;</code>
         * @param value The timerId to set.
         * @return This builder for chaining.
         */
        public Builder setTimerId(long value) {
          bitField0_ |= 0x00000002;
          timerId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 timer_id = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimerId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          timerId_ = 0L;
          onChanged();
          return this;
        }

        private long delay_ ;
        /**
         * <code>optional int64 delay = 3;</code>
         * @return Whether the delay field is set.
         */
        @java.lang.Override
        public boolean hasDelay() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional int64 delay = 3;</code>
         * @return The delay.
         */
        @java.lang.Override
        public long getDelay() {
          return delay_;
        }
        /**
         * <code>optional int64 delay = 3;</code>
         * @param value The delay to set.
         * @return This builder for chaining.
         */
        public Builder setDelay(long value) {
          bitField0_ |= 0x00000004;
          delay_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 delay = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearDelay() {
          bitField0_ = (bitField0_ & ~0x00000004);
          delay_ = 0L;
          onChanged();
          return this;
        }

        private long period_ ;
        /**
         * <code>optional int64 period = 4;</code>
         * @return Whether the period field is set.
         */
        @java.lang.Override
        public boolean hasPeriod() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <code>optional int64 period = 4;</code>
         * @return The period.
         */
        @java.lang.Override
        public long getPeriod() {
          return period_;
        }
        /**
         * <code>optional int64 period = 4;</code>
         * @param value The period to set.
         * @return This builder for chaining.
         */
        public Builder setPeriod(long value) {
          bitField0_ |= 0x00000008;
          period_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 period = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearPeriod() {
          bitField0_ = (bitField0_ & ~0x00000008);
          period_ = 0L;
          onChanged();
          return this;
        }

        private long processInstanceId_ ;
        /**
         * <code>optional int64 process_instance_id = 5;</code>
         * @return Whether the processInstanceId field is set.
         */
        @java.lang.Override
        public boolean hasProcessInstanceId() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <code>optional int64 process_instance_id = 5;</code>
         * @return The processInstanceId.
         */
        @java.lang.Override
        public long getProcessInstanceId() {
          return processInstanceId_;
        }
        /**
         * <code>optional int64 process_instance_id = 5;</code>
         * @param value The processInstanceId to set.
         * @return This builder for chaining.
         */
        public Builder setProcessInstanceId(long value) {
          bitField0_ |= 0x00000010;
          processInstanceId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 process_instance_id = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearProcessInstanceId() {
          bitField0_ = (bitField0_ & ~0x00000010);
          processInstanceId_ = 0L;
          onChanged();
          return this;
        }

        private long activatedTime_ ;
        /**
         * <code>optional int64 activated_time = 6;</code>
         * @return Whether the activatedTime field is set.
         */
        @java.lang.Override
        public boolean hasActivatedTime() {
          return ((bitField0_ & 0x00000020) != 0);
        }
        /**
         * <code>optional int64 activated_time = 6;</code>
         * @return The activatedTime.
         */
        @java.lang.Override
        public long getActivatedTime() {
          return activatedTime_;
        }
        /**
         * <code>optional int64 activated_time = 6;</code>
         * @param value The activatedTime to set.
         * @return This builder for chaining.
         */
        public Builder setActivatedTime(long value) {
          bitField0_ |= 0x00000020;
          activatedTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 activated_time = 6;</code>
         * @return This builder for chaining.
         */
        public Builder clearActivatedTime() {
          bitField0_ = (bitField0_ & ~0x00000020);
          activatedTime_ = 0L;
          onChanged();
          return this;
        }

        private long lastTriggered_ ;
        /**
         * <code>optional int64 last_triggered = 7;</code>
         * @return Whether the lastTriggered field is set.
         */
        @java.lang.Override
        public boolean hasLastTriggered() {
          return ((bitField0_ & 0x00000040) != 0);
        }
        /**
         * <code>optional int64 last_triggered = 7;</code>
         * @return The lastTriggered.
         */
        @java.lang.Override
        public long getLastTriggered() {
          return lastTriggered_;
        }
        /**
         * <code>optional int64 last_triggered = 7;</code>
         * @param value The lastTriggered to set.
         * @return This builder for chaining.
         */
        public Builder setLastTriggered(long value) {
          bitField0_ |= 0x00000040;
          lastTriggered_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 last_triggered = 7;</code>
         * @return This builder for chaining.
         */
        public Builder clearLastTriggered() {
          bitField0_ = (bitField0_ & ~0x00000040);
          lastTriggered_ = 0L;
          onChanged();
          return this;
        }

        private int dEPRECATEDSessionId_ ;
        /**
         * <code>optional int32 DEPRECATED_sessionId = 8;</code>
         * @return Whether the dEPRECATEDSessionId field is set.
         */
        @java.lang.Override
        public boolean hasDEPRECATEDSessionId() {
          return ((bitField0_ & 0x00000080) != 0);
        }
        /**
         * <code>optional int32 DEPRECATED_sessionId = 8;</code>
         * @return The dEPRECATEDSessionId.
         */
        @java.lang.Override
        public int getDEPRECATEDSessionId() {
          return dEPRECATEDSessionId_;
        }
        /**
         * <code>optional int32 DEPRECATED_sessionId = 8;</code>
         * @param value The dEPRECATEDSessionId to set.
         * @return This builder for chaining.
         */
        public Builder setDEPRECATEDSessionId(int value) {
          bitField0_ |= 0x00000080;
          dEPRECATEDSessionId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int32 DEPRECATED_sessionId = 8;</code>
         * @return This builder for chaining.
         */
        public Builder clearDEPRECATEDSessionId() {
          bitField0_ = (bitField0_ & ~0x00000080);
          dEPRECATEDSessionId_ = 0;
          onChanged();
          return this;
        }

        private long sessionId_ ;
        /**
         * <code>optional int64 sessionId = 9;</code>
         * @return Whether the sessionId field is set.
         */
        @java.lang.Override
        public boolean hasSessionId() {
          return ((bitField0_ & 0x00000100) != 0);
        }
        /**
         * <code>optional int64 sessionId = 9;</code>
         * @return The sessionId.
         */
        @java.lang.Override
        public long getSessionId() {
          return sessionId_;
        }
        /**
         * <code>optional int64 sessionId = 9;</code>
         * @param value The sessionId to set.
         * @return This builder for chaining.
         */
        public Builder setSessionId(long value) {
          bitField0_ |= 0x00000100;
          sessionId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 sessionId = 9;</code>
         * @return This builder for chaining.
         */
        public Builder clearSessionId() {
          bitField0_ = (bitField0_ & ~0x00000100);
          sessionId_ = 0L;
          onChanged();
          return this;
        }

        private int repeatLimit_ ;
        /**
         * <code>optional int32 repeatLimit = 10;</code>
         * @return Whether the repeatLimit field is set.
         */
        @java.lang.Override
        public boolean hasRepeatLimit() {
          return ((bitField0_ & 0x00000200) != 0);
        }
        /**
         * <code>optional int32 repeatLimit = 10;</code>
         * @return The repeatLimit.
         */
        @java.lang.Override
        public int getRepeatLimit() {
          return repeatLimit_;
        }
        /**
         * <code>optional int32 repeatLimit = 10;</code>
         * @param value The repeatLimit to set.
         * @return This builder for chaining.
         */
        public Builder setRepeatLimit(int value) {
          bitField0_ |= 0x00000200;
          repeatLimit_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int32 repeatLimit = 10;</code>
         * @return This builder for chaining.
         */
        public Builder clearRepeatLimit() {
          bitField0_ = (bitField0_ & ~0x00000200);
          repeatLimit_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object name_ = "";
        /**
         * <code>optional string name = 11;</code>
         * @return Whether the name field is set.
         */
        public boolean hasName() {
          return ((bitField0_ & 0x00000400) != 0);
        }
        /**
         * <code>optional string name = 11;</code>
         * @return The name.
         */
        public java.lang.String getName() {
          java.lang.Object ref = name_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              name_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string name = 11;</code>
         * @return The bytes for name.
         */
        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 = 11;</code>
         * @param value The name to set.
         * @return This builder for chaining.
         */
        public Builder setName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
          name_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string name = 11;</code>
         * @return This builder for chaining.
         */
        public Builder clearName() {
          bitField0_ = (bitField0_ & ~0x00000400);
          name_ = getDefaultInstance().getName();
          onChanged();
          return this;
        }
        /**
         * <code>optional string name = 11;</code>
         * @param value The bytes for name to set.
         * @return This builder for chaining.
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
          name_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessTimer.TimerInstance)
      }

      // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessTimer.TimerInstance)
      private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance();
      }

      public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

      public static com.google.protobuf.Parser<TimerInstance> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    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>
     * @return Whether the timer field is set.
     */
    @java.lang.Override
    public boolean hasTimer() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     * @return The timer.
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getTimer() {
      return timer_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance() : timer_;
    }
    /**
     * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder getTimerOrBuilder() {
      return timer_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance() : timer_;
    }

    public static final int TRIGGER_FIELD_NUMBER = 2;
    private org.drools.serialization.protobuf.ProtobufMessages.Trigger trigger_;
    /**
     * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
     * @return Whether the trigger field is set.
     */
    @java.lang.Override
    public boolean hasTrigger() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
     * @return The trigger.
     */
    @java.lang.Override
    public org.drools.serialization.protobuf.ProtobufMessages.Trigger getTrigger() {
      return trigger_ == null ? org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance() : trigger_;
    }
    /**
     * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
     */
    @java.lang.Override
    public org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder getTriggerOrBuilder() {
      return trigger_ == null ? org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance() : trigger_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getTimer());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getTrigger());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getTimer());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getTrigger());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer)) {
        return super.equals(obj);
      }
      org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer other = (org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer) obj;

      if (hasTimer() != other.hasTimer()) return false;
      if (hasTimer()) {
        if (!getTimer()
            .equals(other.getTimer())) return false;
      }
      if (hasTrigger() != other.hasTrigger()) return false;
      if (hasTrigger()) {
        if (!getTrigger()
            .equals(other.getTrigger())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTimer()) {
        hash = (37 * hash) + TIMER_FIELD_NUMBER;
        hash = (53 * hash) + getTimer().hashCode();
      }
      if (hasTrigger()) {
        hash = (37 * hash) + TRIGGER_FIELD_NUMBER;
        hash = (53 * hash) + getTrigger().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.ProcessTimer)
        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;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTimerFieldBuilder();
          getTriggerFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (timerBuilder_ == null) {
          timer_ = null;
        } else {
          timerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (triggerBuilder_ == null) {
          trigger_ = null;
        } else {
          triggerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_ProcessTimer_descriptor;
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.getDefaultInstance();
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer build() {
        org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      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) != 0)) {
          if (timerBuilder_ == null) {
            result.timer_ = timer_;
          } else {
            result.timer_ = timerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (triggerBuilder_ == null) {
            result.trigger_ = trigger_;
          } else {
            result.trigger_ = triggerBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance timer_;
      private com.google.protobuf.SingleFieldBuilderV3<
          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>
       * @return Whether the timer field is set.
       */
      public boolean hasTimer() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       * @return The timer.
       */
      public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance getTimer() {
        if (timerBuilder_ == null) {
          return timer_ == null ? org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance() : 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) != 0) &&
              timer_ != null &&
              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_ = null;
          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_ == null ?
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.getDefaultInstance() : timer_;
        }
      }
      /**
       * <code>optional .org.jbpm.marshalling.ProcessTimer.TimerInstance timer = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstance.Builder, org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer.TimerInstanceOrBuilder>(
                  getTimer(),
                  getParentForChildren(),
                  isClean());
          timer_ = null;
        }
        return timerBuilder_;
      }

      private org.drools.serialization.protobuf.ProtobufMessages.Trigger trigger_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.drools.serialization.protobuf.ProtobufMessages.Trigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder> triggerBuilder_;
      /**
       * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
       * @return Whether the trigger field is set.
       */
      public boolean hasTrigger() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
       * @return The trigger.
       */
      public org.drools.serialization.protobuf.ProtobufMessages.Trigger getTrigger() {
        if (triggerBuilder_ == null) {
          return trigger_ == null ? org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance() : trigger_;
        } else {
          return triggerBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
       */
      public Builder setTrigger(org.drools.serialization.protobuf.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.serialization.protobuf.Trigger trigger = 2;</code>
       */
      public Builder setTrigger(
          org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder builderForValue) {
        if (triggerBuilder_ == null) {
          trigger_ = builderForValue.build();
          onChanged();
        } else {
          triggerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
       */
      public Builder mergeTrigger(org.drools.serialization.protobuf.ProtobufMessages.Trigger value) {
        if (triggerBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              trigger_ != null &&
              trigger_ != org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance()) {
            trigger_ =
              org.drools.serialization.protobuf.ProtobufMessages.Trigger.newBuilder(trigger_).mergeFrom(value).buildPartial();
          } else {
            trigger_ = value;
          }
          onChanged();
        } else {
          triggerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
       */
      public Builder clearTrigger() {
        if (triggerBuilder_ == null) {
          trigger_ = null;
          onChanged();
        } else {
          triggerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
       */
      public org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder getTriggerBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getTriggerFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
       */
      public org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder getTriggerOrBuilder() {
        if (triggerBuilder_ != null) {
          return triggerBuilder_.getMessageOrBuilder();
        } else {
          return trigger_ == null ?
              org.drools.serialization.protobuf.ProtobufMessages.Trigger.getDefaultInstance() : trigger_;
        }
      }
      /**
       * <code>optional .org.drools.serialization.protobuf.Trigger trigger = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.drools.serialization.protobuf.ProtobufMessages.Trigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder> 
          getTriggerFieldBuilder() {
        if (triggerBuilder_ == null) {
          triggerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.drools.serialization.protobuf.ProtobufMessages.Trigger, org.drools.serialization.protobuf.ProtobufMessages.Trigger.Builder, org.drools.serialization.protobuf.ProtobufMessages.TriggerOrBuilder>(
                  getTrigger(),
                  getParentForChildren(),
                  isClean());
          trigger_ = null;
        }
        return triggerBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.ProcessTimer)
    }

    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.ProcessTimer)
    private static final org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer();
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<ProcessTimer> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.ProcessTimer getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface IterationLevelOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.IterationLevel)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string id = 1;</code>
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * <code>optional string id = 1;</code>
     * @return The id.
     */
    java.lang.String getId();
    /**
     * <code>optional string id = 1;</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * <code>optional int32 level = 2;</code>
     * @return Whether the level field is set.
     */
    boolean hasLevel();
    /**
     * <code>optional int32 level = 2;</code>
     * @return The level.
     */
    int getLevel();
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.IterationLevel}
   */
  public static final class IterationLevel extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.IterationLevel)
      IterationLevelOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IterationLevel.newBuilder() to construct.
    private IterationLevel(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private IterationLevel() {
      id_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new IterationLevel();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private IterationLevel(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              id_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              level_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_IterationLevel_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_IterationLevel_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.class, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder.class);
    }

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object id_;
    /**
     * <code>optional string id = 1;</code>
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      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()) {
          id_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string id = 1;</code>
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LEVEL_FIELD_NUMBER = 2;
    private int level_;
    /**
     * <code>optional int32 level = 2;</code>
     * @return Whether the level field is set.
     */
    @java.lang.Override
    public boolean hasLevel() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int32 level = 2;</code>
     * @return The level.
     */
    @java.lang.Override
    public int getLevel() {
      return level_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, level_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, level_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.IterationLevel)) {
        return super.equals(obj);
      }
      org.jbpm.marshalling.impl.JBPMMessages.IterationLevel other = (org.jbpm.marshalling.impl.JBPMMessages.IterationLevel) obj;

      if (hasId() != other.hasId()) return false;
      if (hasId()) {
        if (!getId()
            .equals(other.getId())) return false;
      }
      if (hasLevel() != other.hasLevel()) return false;
      if (hasLevel()) {
        if (getLevel()
            != other.getLevel()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId().hashCode();
      }
      if (hasLevel()) {
        hash = (37 * hash) + LEVEL_FIELD_NUMBER;
        hash = (53 * hash) + getLevel();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel 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.IterationLevel parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel 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.IterationLevel parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.IterationLevel prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.IterationLevel}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.IterationLevel)
        org.jbpm.marshalling.impl.JBPMMessages.IterationLevelOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_IterationLevel_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_IterationLevel_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.class, org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        level_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_IterationLevel_descriptor;
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.getDefaultInstance();
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel build() {
        org.jbpm.marshalling.impl.JBPMMessages.IterationLevel result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel buildPartial() {
        org.jbpm.marshalling.impl.JBPMMessages.IterationLevel result = new org.jbpm.marshalling.impl.JBPMMessages.IterationLevel(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.level_ = level_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.IterationLevel) {
          return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.IterationLevel)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.IterationLevel other) {
        if (other == org.jbpm.marshalling.impl.JBPMMessages.IterationLevel.getDefaultInstance()) return this;
        if (other.hasId()) {
          bitField0_ |= 0x00000001;
          id_ = other.id_;
          onChanged();
        }
        if (other.hasLevel()) {
          setLevel(other.getLevel());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jbpm.marshalling.impl.JBPMMessages.IterationLevel parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.IterationLevel) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object id_ = "";
      /**
       * <code>optional string id = 1;</code>
       * @return Whether the id field is set.
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string id = 1;</code>
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            id_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string id = 1;</code>
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * <code>optional string id = 1;</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }

      private int level_ ;
      /**
       * <code>optional int32 level = 2;</code>
       * @return Whether the level field is set.
       */
      @java.lang.Override
      public boolean hasLevel() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int32 level = 2;</code>
       * @return The level.
       */
      @java.lang.Override
      public int getLevel() {
        return level_;
      }
      /**
       * <code>optional int32 level = 2;</code>
       * @param value The level to set.
       * @return This builder for chaining.
       */
      public Builder setLevel(int value) {
        bitField0_ |= 0x00000002;
        level_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 level = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLevel() {
        bitField0_ = (bitField0_ & ~0x00000002);
        level_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.IterationLevel)
    }

    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.IterationLevel)
    private static final org.jbpm.marshalling.impl.JBPMMessages.IterationLevel DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.IterationLevel();
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<IterationLevel>
        PARSER = new com.google.protobuf.AbstractParser<IterationLevel>() {
      @java.lang.Override
      public IterationLevel parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new IterationLevel(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<IterationLevel> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.IterationLevel getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VariableContainerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jbpm.marshalling.VariableContainer)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> 
        getVariableList();
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index);
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    int getVariableCount();
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList();
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code org.jbpm.marshalling.VariableContainer}
   */
  public static final class VariableContainer extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.jbpm.marshalling.VariableContainer)
      VariableContainerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VariableContainer.newBuilder() to construct.
    private VariableContainer(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VariableContainer() {
      variable_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new VariableContainer();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VariableContainer(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>();
                mutable_bitField0_ |= 0x00000001;
              }
              variable_.add(
                  input.readMessage(org.jbpm.marshalling.impl.JBPMMessages.Variable.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          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_VariableContainer_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_VariableContainer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jbpm.marshalling.impl.JBPMMessages.VariableContainer.class, org.jbpm.marshalling.impl.JBPMMessages.VariableContainer.Builder.class);
    }

    public static final int VARIABLE_FIELD_NUMBER = 1;
    private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_;
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    @java.lang.Override
    public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> getVariableList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder> 
        getVariableOrBuilderList() {
      return variable_;
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    @java.lang.Override
    public int getVariableCount() {
      return variable_.size();
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.Variable getVariable(int index) {
      return variable_.get(index);
    }
    /**
     * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
     */
    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder getVariableOrBuilder(
        int index) {
      return variable_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < variable_.size(); i++) {
        output.writeMessage(1, variable_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < variable_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, variable_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jbpm.marshalling.impl.JBPMMessages.VariableContainer)) {
        return super.equals(obj);
      }
      org.jbpm.marshalling.impl.JBPMMessages.VariableContainer other = (org.jbpm.marshalling.impl.JBPMMessages.VariableContainer) obj;

      if (!getVariableList()
          .equals(other.getVariableList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getVariableCount() > 0) {
        hash = (37 * hash) + VARIABLE_FIELD_NUMBER;
        hash = (53 * hash) + getVariableList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer 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.VariableContainer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer 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.VariableContainer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jbpm.marshalling.impl.JBPMMessages.VariableContainer prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.jbpm.marshalling.VariableContainer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.jbpm.marshalling.VariableContainer)
        org.jbpm.marshalling.impl.JBPMMessages.VariableContainerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_VariableContainer_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_VariableContainer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jbpm.marshalling.impl.JBPMMessages.VariableContainer.class, org.jbpm.marshalling.impl.JBPMMessages.VariableContainer.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getVariableFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (variableBuilder_ == null) {
          variable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          variableBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.internal_static_org_jbpm_marshalling_VariableContainer_descriptor;
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.VariableContainer getDefaultInstanceForType() {
        return org.jbpm.marshalling.impl.JBPMMessages.VariableContainer.getDefaultInstance();
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.VariableContainer build() {
        org.jbpm.marshalling.impl.JBPMMessages.VariableContainer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jbpm.marshalling.impl.JBPMMessages.VariableContainer buildPartial() {
        org.jbpm.marshalling.impl.JBPMMessages.VariableContainer result = new org.jbpm.marshalling.impl.JBPMMessages.VariableContainer(this);
        int from_bitField0_ = bitField0_;
        if (variableBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            variable_ = java.util.Collections.unmodifiableList(variable_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.variable_ = variable_;
        } else {
          result.variable_ = variableBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jbpm.marshalling.impl.JBPMMessages.VariableContainer) {
          return mergeFrom((org.jbpm.marshalling.impl.JBPMMessages.VariableContainer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jbpm.marshalling.impl.JBPMMessages.VariableContainer other) {
        if (other == org.jbpm.marshalling.impl.JBPMMessages.VariableContainer.getDefaultInstance()) return this;
        if (variableBuilder_ == null) {
          if (!other.variable_.isEmpty()) {
            if (variable_.isEmpty()) {
              variable_ = other.variable_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureVariableIsMutable();
              variable_.addAll(other.variable_);
            }
            onChanged();
          }
        } else {
          if (!other.variable_.isEmpty()) {
            if (variableBuilder_.isEmpty()) {
              variableBuilder_.dispose();
              variableBuilder_ = null;
              variable_ = other.variable_;
              bitField0_ = (bitField0_ & ~0x00000001);
              variableBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getVariableFieldBuilder() : null;
            } else {
              variableBuilder_.addAllMessages(other.variable_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jbpm.marshalling.impl.JBPMMessages.VariableContainer parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jbpm.marshalling.impl.JBPMMessages.VariableContainer) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable> variable_ =
        java.util.Collections.emptyList();
      private void ensureVariableIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          variable_ = new java.util.ArrayList<org.jbpm.marshalling.impl.JBPMMessages.Variable>(variable_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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 = 1;</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 = 1;</code>
       */
      public int getVariableCount() {
        if (variableBuilder_ == null) {
          return variable_.size();
        } else {
          return variableBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</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 = 1;</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 = 1;</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 = 1;</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 = 1;</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 = 1;</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 = 1;</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 = 1;</code>
       */
      public Builder addAllVariable(
          java.lang.Iterable<? extends org.jbpm.marshalling.impl.JBPMMessages.Variable> values) {
        if (variableBuilder_ == null) {
          ensureVariableIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, variable_);
          onChanged();
        } else {
          variableBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</code>
       */
      public Builder clearVariable() {
        if (variableBuilder_ == null) {
          variable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          variableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</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 = 1;</code>
       */
      public org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder getVariableBuilder(
          int index) {
        return getVariableFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.jbpm.marshalling.Variable variable = 1;</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 = 1;</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 = 1;</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 = 1;</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 = 1;</code>
       */
      public java.util.List<org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder> 
           getVariableBuilderList() {
        return getVariableFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              org.jbpm.marshalling.impl.JBPMMessages.Variable, org.jbpm.marshalling.impl.JBPMMessages.Variable.Builder, org.jbpm.marshalling.impl.JBPMMessages.VariableOrBuilder>(
                  variable_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          variable_ = null;
        }
        return variableBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:org.jbpm.marshalling.VariableContainer)
    }

    // @@protoc_insertion_point(class_scope:org.jbpm.marshalling.VariableContainer)
    private static final org.jbpm.marshalling.impl.JBPMMessages.VariableContainer DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jbpm.marshalling.impl.JBPMMessages.VariableContainer();
    }

    public static org.jbpm.marshalling.impl.JBPMMessages.VariableContainer getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<VariableContainer>
        PARSER = new com.google.protobuf.AbstractParser<VariableContainer>() {
      @java.lang.Override
      public VariableContainer parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new VariableContainer(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<VariableContainer> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public org.jbpm.marshalling.impl.JBPMMessages.VariableContainer getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public static final int PROCESS_INSTANCE_FIELD_NUMBER = 10;
  /**
   * <code>extend .org.drools.serialization.protobuf.ProcessData { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.serialization.protobuf.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.serialization.protobuf.ProcessData { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.serialization.protobuf.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.serialization.protobuf.ProcessData { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.serialization.protobuf.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.serialization.protobuf.ProcessData { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.serialization.protobuf.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.serialization.protobuf.Timers.Timer { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      org.drools.serialization.protobuf.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 final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_SwimlaneContextInstance_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_ExclusiveGroupInstance_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_TextMapEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_TextMapEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_SubProcessNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_MilestoneNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_EventNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_TimerNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_JoinNode_JoinTrigger_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_StateNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_AsyncEventNode_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_AsyncEventNode_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_Variable_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_Variable_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_WorkItem_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_WorkItem_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessTimer_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessTimer_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_IterationLevel_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_IterationLevel_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jbpm_marshalling_VariableContainer_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_jbpm_marshalling_VariableContainer_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\0326org/drools/seri" +
      "alization/protobuf/droolsmessages.proto\"" +
      "\304\037\n\017ProcessInstance\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\005sta" +
      "te\030\004 \001(\005\022\035\n\025node_instance_counter\030\005 \001(\003\022" +
      "\023\n\013process_xml\030\013 \001(\t\022\"\n\032parent_process_i" +
      "nstance_id\030\014 \001(\003\022\023\n\013description\030\017 \001(\t\022\037\n" +
      "\021signal_completion\030\020 \001(\010:\004true\022\024\n\014deploy" +
      "mentId\030\021 \001(\t\022\027\n\017correlation_key\030\022 \001(\t\022\024\n" +
      "\014sla_timer_id\030\023 \001(\003\022\024\n\014sla_due_date\030\024 \001(" +
      "\003\022\026\n\016sla_compliance\030\025 \001(\005\022W\n\020swimlane_co" +
      "ntext\030\006 \003(\0132=.org.jbpm.marshalling.Proce" +
      "ssInstance.SwimlaneContextInstance\022I\n\rno" +
      "de_instance\030\007 \003(\01322.org.jbpm.marshalling" +
      ".ProcessInstance.NodeInstance\0220\n\010variabl" +
      "e\030\010 \003(\0132\036.org.jbpm.marshalling.Variable\022" +
      "U\n\017exclusive_group\030\n \003(\0132<.org.jbpm.mars" +
      "halling.ProcessInstance.ExclusiveGroupIn" +
      "stance\022\030\n\020completedNodeIds\030\r \003(\t\022=\n\017iter" +
      "ationLevels\030\016 \003(\0132$.org.jbpm.marshalling" +
      ".IterationLevel\032=\n\027SwimlaneContextInstan" +
      "ce\022\020\n\010swimlane\030\001 \001(\t\022\020\n\010actor_id\030\002 \001(\t\032\312" +
      "\001\n\014NodeInstance\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.marshal" +
      "ling.ProcessInstance.NodeInstanceContent" +
      "\022\r\n\005level\030\005 \001(\005\022\024\n\014sla_timer_id\030\006 \001(\003\022\024\n" +
      "\014sla_due_date\030\007 \001(\003\022\026\n\016sla_compliance\030\010 " +
      "\001(\005\0328\n\026ExclusiveGroupInstance\022\036\n\026group_n" +
      "ode_instance_id\030\001 \003(\003\032\363\024\n\023NodeInstanceCo" +
      "ntent\022D\n\004type\030\001 \001(\01626.org.jbpm.marshalli" +
      "ng.ProcessInstance.NodeInstanceType\022W\n\010r" +
      "ule_set\030\002 \001(\0132E.org.jbpm.marshalling.Pro" +
      "cessInstance.NodeInstanceContent.RuleSet" +
      "Node\022[\n\nhuman_task\030\003 \001(\0132G.org.jbpm.mars" +
      "halling.ProcessInstance.NodeInstanceCont" +
      "ent.HumanTaskNode\022Y\n\twork_item\030\004 \001(\0132F.o" +
      "rg.jbpm.marshalling.ProcessInstance.Node" +
      "InstanceContent.WorkItemNode\022]\n\013sub_proc" +
      "ess\030\005 \001(\0132H.org.jbpm.marshalling.Process" +
      "Instance.NodeInstanceContent.SubProcessN" +
      "ode\022Z\n\tmilestone\030\006 \001(\0132G.org.jbpm.marsha" +
      "lling.ProcessInstance.NodeInstanceConten" +
      "t.MilestoneNode\022R\n\005event\030\007 \001(\0132C.org.jbp" +
      "m.marshalling.ProcessInstance.NodeInstan" +
      "ceContent.EventNode\022R\n\005timer\030\010 \001(\0132C.org" +
      ".jbpm.marshalling.ProcessInstance.NodeIn" +
      "stanceContent.TimerNode\022P\n\004join\030\t \001(\0132B." +
      "org.jbpm.marshalling.ProcessInstance.Nod" +
      "eInstanceContent.JoinNode\022R\n\005state\030\n \001(\013" +
      "2C.org.jbpm.marshalling.ProcessInstance." +
      "NodeInstanceContent.StateNode\022a\n\tcomposi" +
      "te\030\013 \001(\0132N.org.jbpm.marshalling.ProcessI" +
      "nstance.NodeInstanceContent.CompositeCon" +
      "textNode\022W\n\010for_each\030\014 \001(\0132E.org.jbpm.ma" +
      "rshalling.ProcessInstance.NodeInstanceCo" +
      "ntent.ForEachNode\022]\n\013async_event\030\r \001(\0132H" +
      ".org.jbpm.marshalling.ProcessInstance.No" +
      "deInstanceContent.AsyncEventNode\032\324\001\n\013Rul" +
      "eSetNode\022\031\n\021timer_instance_id\030\001 \003(\003\022d\n\010m" +
      "apEntry\030\002 \003(\0132R.org.jbpm.marshalling.Pro" +
      "cessInstance.NodeInstanceContent.RuleSet" +
      "Node.TextMapEntry\022\027\n\017rule_flow_group\030\003 \001" +
      "(\t\032+\n\014TextMapEntry\022\014\n\004name\030\001 \001(\t\022\r\n\005valu" +
      "e\030\002 \001(\t\032\253\001\n\rHumanTaskNode\022\024\n\014work_item_i" +
      "d\030\001 \001(\003\022\031\n\021timer_instance_id\030\002 \003(\003\022*\n\"er" +
      "ror_handling_process_instance_id\030\003 \001(\003\022&" +
      "\n\036timer_instance_id_suspendUntil\030\004 \001(\003\022\025" +
      "\n\rtrigger_count\030\005 \001(\005\032\202\001\n\014WorkItemNode\022\024" +
      "\n\014work_item_id\030\001 \001(\003\022\031\n\021timer_instance_i" +
      "d\030\002 \003(\003\022*\n\"error_handling_process_instan" +
      "ce_id\030\003 \001(\003\022\025\n\rtrigger_count\030\004 \001(\005\032H\n\016Su" +
      "bProcessNode\022\033\n\023process_instance_id\030\001 \001(" +
      "\003\022\031\n\021timer_instance_id\030\002 \003(\003\032*\n\rMileston" +
      "eNode\022\031\n\021timer_instance_id\030\001 \003(\003\032\013\n\tEven" +
      "tNode\032\035\n\tTimerNode\022\020\n\010timer_id\030\001 \001(\003\032\234\001\n" +
      "\010JoinNode\022_\n\007trigger\030\001 \003(\0132N.org.jbpm.ma" +
      "rshalling.ProcessInstance.NodeInstanceCo" +
      "ntent.JoinNode.JoinTrigger\032/\n\013JoinTrigge" +
      "r\022\017\n\007node_id\030\001 \001(\003\022\017\n\007counter\030\002 \001(\005\032&\n\tS" +
      "tateNode\022\031\n\021timer_instance_id\030\001 \003(\003\032\304\002\n\024" +
      "CompositeContextNode\022\031\n\021timer_instance_i" +
      "d\030\002 \003(\003\0220\n\010variable\030\003 \003(\0132\036.org.jbpm.mar" +
      "shalling.Variable\022I\n\rnode_instance\030\004 \003(\013" +
      "22.org.jbpm.marshalling.ProcessInstance." +
      "NodeInstance\022U\n\017exclusive_group\030\005 \003(\0132<." +
      "org.jbpm.marshalling.ProcessInstance.Exc" +
      "lusiveGroupInstance\022=\n\017iterationLevels\030\006" +
      " \003(\0132$.org.jbpm.marshalling.IterationLev" +
      "el\032\200\002\n\013ForEachNode\022I\n\rnode_instance\030\001 \003(" +
      "\01322.org.jbpm.marshalling.ProcessInstance" +
      ".NodeInstance\0220\n\010variable\030\002 \003(\0132\036.org.jb" +
      "pm.marshalling.Variable\022=\n\017iterationLeve" +
      "ls\030\003 \003(\0132$.org.jbpm.marshalling.Iteratio" +
      "nLevel\022\032\n\022sequential_counter\030\004 \001(\005\022\031\n\021ti" +
      "mer_instance_id\030\005 \003(\003\032$\n\016AsyncEventNode\022" +
      "\022\n\nevent_type\030\001 \001(\t\"\250\002\n\020NodeInstanceType" +
      "\022\021\n\rRULE_SET_NODE\020\000\022\023\n\017HUMAN_TASK_NODE\020\001" +
      "\022\022\n\016WORK_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" +
      "\nTIMER_NODE\020\006\022\r\n\tJOIN_NODE\020\007\022\016\n\nSTATE_NO" +
      "DE\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\022\031\n\025EVENT_S" +
      "UBPROCESS_NODE\020\014\022\024\n\020ASYNC_EVENT_NODE\020\r\"?" +
      "\n\010Variable\022\014\n\004name\030\001 \001(\t\022\026\n\016strategy_ind" +
      "ex\030\002 \001(\005\022\r\n\005value\030\003 \001(\014\"\305\001\n\010WorkItem\022\n\n\002" +
      "id\030\001 \001(\003\022\034\n\024process_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.jbpm.marshalling.Variable\022\025\n" +
      "\rdeployment_id\030\006 \001(\t\022\030\n\020node_instance_id" +
      "\030\007 \001(\003\022\017\n\007node_id\030\010 \001(\003\"\374\002\n\014ProcessTimer" +
      "\022?\n\005timer\030\001 \001(\01320.org.jbpm.marshalling.P" +
      "rocessTimer.TimerInstance\022;\n\007trigger\030\002 \001" +
      "(\0132*.org.drools.serialization.protobuf.T" +
      "rigger\032\355\001\n\rTimerInstance\022\n\n\002id\030\001 \001(\003\022\020\n\010" +
      "timer_id\030\002 \001(\003\022\r\n\005delay\030\003 \001(\003\022\016\n\006period\030" +
      "\004 \001(\003\022\033\n\023process_instance_id\030\005 \001(\003\022\026\n\016ac" +
      "tivated_time\030\006 \001(\003\022\026\n\016last_triggered\030\007 \001" +
      "(\003\022\034\n\024DEPRECATED_sessionId\030\010 \001(\005\022\021\n\tsess" +
      "ionId\030\t \001(\003\022\023\n\013repeatLimit\030\n \001(\005\022\014\n\004name" +
      "\030\013 \001(\t\"+\n\016IterationLevel\022\n\n\002id\030\001 \001(\t\022\r\n\005" +
      "level\030\002 \001(\005\"E\n\021VariableContainer\0220\n\010vari" +
      "able\030\001 \003(\0132\036.org.jbpm.marshalling.Variab" +
      "le:o\n\020process_instance\022..org.drools.seri" +
      "alization.protobuf.ProcessData\030\n \003(\0132%.o" +
      "rg.jbpm.marshalling.ProcessInstance:a\n\tw" +
      "ork_item\022..org.drools.serialization.prot" +
      "obuf.ProcessData\030\013 \003(\0132\036.org.jbpm.marsha" +
      "lling.WorkItem:@\n\010timer_id\022..org.drools." +
      "serialization.protobuf.ProcessData\030\r \001(\003" +
      ":i\n\rprocess_timer\022..org.drools.serializa" +
      "tion.protobuf.ProcessData\030\014 \003(\0132\".org.jb" +
      "pm.marshalling.ProcessTimer:g\n\nproc_time" +
      "r\022/.org.drools.serialization.protobuf.Ti" +
      "mers.Timer\030d \001(\0132\".org.jbpm.marshalling." +
      "ProcessTimerB)\n\031org.jbpm.marshalling.imp" +
      "lB\014JBPMMessages"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          org.drools.serialization.protobuf.ProtobufMessages.getDescriptor(),
        });
    internal_static_org_jbpm_marshalling_ProcessInstance_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_org_jbpm_marshalling_ProcessInstance_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessInstance_descriptor,
        new java.lang.String[] { "ProcessType", "Id", "ProcessId", "State", "NodeInstanceCounter", "ProcessXml", "ParentProcessInstanceId", "Description", "SignalCompletion", "DeploymentId", "CorrelationKey", "SlaTimerId", "SlaDueDate", "SlaCompliance", "SwimlaneContext", "NodeInstance", "Variable", "ExclusiveGroup", "CompletedNodeIds", "IterationLevels", });
    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.GeneratedMessageV3.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.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstance_descriptor,
        new java.lang.String[] { "Id", "NodeId", "Content", "Level", "SlaTimerId", "SlaDueDate", "SlaCompliance", });
    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.GeneratedMessageV3.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.GeneratedMessageV3.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", "AsyncEvent", });
    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.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor,
        new java.lang.String[] { "TimerInstanceId", "MapEntry", "RuleFlowGroup", });
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_TextMapEntry_descriptor =
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_descriptor.getNestedTypes().get(0);
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_TextMapEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_RuleSetNode_TextMapEntry_descriptor,
        new java.lang.String[] { "Name", "Value", });
    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.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_HumanTaskNode_descriptor,
        new java.lang.String[] { "WorkItemId", "TimerInstanceId", "ErrorHandlingProcessInstanceId", "TimerInstanceIdSuspendUntil", "TriggerCount", });
    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.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_WorkItemNode_descriptor,
        new java.lang.String[] { "WorkItemId", "TimerInstanceId", "ErrorHandlingProcessInstanceId", "TriggerCount", });
    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.GeneratedMessageV3.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.GeneratedMessageV3.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.GeneratedMessageV3.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.GeneratedMessageV3.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.GeneratedMessageV3.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.GeneratedMessageV3.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.GeneratedMessageV3.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.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_CompositeContextNode_descriptor,
        new java.lang.String[] { "TimerInstanceId", "Variable", "NodeInstance", "ExclusiveGroup", "IterationLevels", });
    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.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_ForEachNode_descriptor,
        new java.lang.String[] { "NodeInstance", "Variable", "IterationLevels", "SequentialCounter", "TimerInstanceId", });
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_AsyncEventNode_descriptor =
      internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_descriptor.getNestedTypes().get(11);
    internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_AsyncEventNode_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessInstance_NodeInstanceContent_AsyncEventNode_descriptor,
        new java.lang.String[] { "EventType", });
    internal_static_org_jbpm_marshalling_Variable_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_org_jbpm_marshalling_Variable_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_WorkItem_descriptor,
        new java.lang.String[] { "Id", "ProcessInstancesId", "Name", "State", "Variable", "DeploymentId", "NodeInstanceId", "NodeId", });
    internal_static_org_jbpm_marshalling_ProcessTimer_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_org_jbpm_marshalling_ProcessTimer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_ProcessTimer_TimerInstance_descriptor,
        new java.lang.String[] { "Id", "TimerId", "Delay", "Period", "ProcessInstanceId", "ActivatedTime", "LastTriggered", "DEPRECATEDSessionId", "SessionId", "RepeatLimit", "Name", });
    internal_static_org_jbpm_marshalling_IterationLevel_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_org_jbpm_marshalling_IterationLevel_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_IterationLevel_descriptor,
        new java.lang.String[] { "Id", "Level", });
    internal_static_org_jbpm_marshalling_VariableContainer_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_org_jbpm_marshalling_VariableContainer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_jbpm_marshalling_VariableContainer_descriptor,
        new java.lang.String[] { "Variable", });
    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));
    org.drools.serialization.protobuf.ProtobufMessages.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
