/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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: filechannel.proto

package org.apache.flume.channel.file.proto;

public final class ProtosFactory {
  private ProtosFactory() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public interface CheckpointOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required sfixed32 version = 1;
    /**
     * <code>required sfixed32 version = 1;</code>
     */
    boolean hasVersion();
    /**
     * <code>required sfixed32 version = 1;</code>
     */
    int getVersion();

    // required sfixed64 writeOrderID = 2;
    /**
     * <code>required sfixed64 writeOrderID = 2;</code>
     */
    boolean hasWriteOrderID();
    /**
     * <code>required sfixed64 writeOrderID = 2;</code>
     */
    long getWriteOrderID();

    // required sfixed32 queueSize = 3;
    /**
     * <code>required sfixed32 queueSize = 3;</code>
     */
    boolean hasQueueSize();
    /**
     * <code>required sfixed32 queueSize = 3;</code>
     */
    int getQueueSize();

    // required sfixed32 queueHead = 4;
    /**
     * <code>required sfixed32 queueHead = 4;</code>
     */
    boolean hasQueueHead();
    /**
     * <code>required sfixed32 queueHead = 4;</code>
     */
    int getQueueHead();

    // repeated .ActiveLog activeLogs = 5;
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog> 
        getActiveLogsList();
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog getActiveLogs(int index);
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    int getActiveLogsCount();
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    java.util.List<? extends org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder> 
        getActiveLogsOrBuilderList();
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder getActiveLogsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code Checkpoint}
   */
  public static final class Checkpoint extends
      com.google.protobuf.GeneratedMessage
      implements CheckpointOrBuilder {
    // Use Checkpoint.newBuilder() to construct.
    private Checkpoint(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Checkpoint(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Checkpoint getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Checkpoint(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              bitField0_ |= 0x00000001;
              version_ = input.readSFixed32();
              break;
            }
            case 17: {
              bitField0_ |= 0x00000002;
              writeOrderID_ = input.readSFixed64();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              queueSize_ = input.readSFixed32();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              queueHead_ = input.readSFixed32();
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                activeLogs_ = new java.util.ArrayList<org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog>();
                mutable_bitField0_ |= 0x00000010;
              }
              activeLogs_.add(input.readMessage(org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          activeLogs_ = java.util.Collections.unmodifiableList(activeLogs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Checkpoint_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Checkpoint_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint.class, org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint.Builder.class);
    }

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

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

    private int bitField0_;
    // required sfixed32 version = 1;
    public static final int VERSION_FIELD_NUMBER = 1;
    private int version_;
    /**
     * <code>required sfixed32 version = 1;</code>
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required sfixed32 version = 1;</code>
     */
    public int getVersion() {
      return version_;
    }

    // required sfixed64 writeOrderID = 2;
    public static final int WRITEORDERID_FIELD_NUMBER = 2;
    private long writeOrderID_;
    /**
     * <code>required sfixed64 writeOrderID = 2;</code>
     */
    public boolean hasWriteOrderID() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required sfixed64 writeOrderID = 2;</code>
     */
    public long getWriteOrderID() {
      return writeOrderID_;
    }

    // required sfixed32 queueSize = 3;
    public static final int QUEUESIZE_FIELD_NUMBER = 3;
    private int queueSize_;
    /**
     * <code>required sfixed32 queueSize = 3;</code>
     */
    public boolean hasQueueSize() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required sfixed32 queueSize = 3;</code>
     */
    public int getQueueSize() {
      return queueSize_;
    }

    // required sfixed32 queueHead = 4;
    public static final int QUEUEHEAD_FIELD_NUMBER = 4;
    private int queueHead_;
    /**
     * <code>required sfixed32 queueHead = 4;</code>
     */
    public boolean hasQueueHead() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required sfixed32 queueHead = 4;</code>
     */
    public int getQueueHead() {
      return queueHead_;
    }

    // repeated .ActiveLog activeLogs = 5;
    public static final int ACTIVELOGS_FIELD_NUMBER = 5;
    private java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog> activeLogs_;
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    public java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog> getActiveLogsList() {
      return activeLogs_;
    }
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    public java.util.List<? extends org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder> 
        getActiveLogsOrBuilderList() {
      return activeLogs_;
    }
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    public int getActiveLogsCount() {
      return activeLogs_.size();
    }
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog getActiveLogs(int index) {
      return activeLogs_.get(index);
    }
    /**
     * <code>repeated .ActiveLog activeLogs = 5;</code>
     */
    public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder getActiveLogsOrBuilder(
        int index) {
      return activeLogs_.get(index);
    }

    private void initFields() {
      version_ = 0;
      writeOrderID_ = 0L;
      queueSize_ = 0;
      queueHead_ = 0;
      activeLogs_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasWriteOrderID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasQueueSize()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasQueueHead()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getActiveLogsCount(); i++) {
        if (!getActiveLogs(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeSFixed32(1, version_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSFixed64(2, writeOrderID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeSFixed32(3, queueSize_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeSFixed32(4, queueHead_);
      }
      for (int i = 0; i < activeLogs_.size(); i++) {
        output.writeMessage(5, activeLogs_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(1, version_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed64Size(2, writeOrderID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(3, queueSize_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(4, queueHead_);
      }
      for (int i = 0; i < activeLogs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, activeLogs_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Checkpoint}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.CheckpointOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Checkpoint_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Checkpoint_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint.class, org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getActiveLogsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        version_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        writeOrderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        queueSize_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        queueHead_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (activeLogsBuilder_ == null) {
          activeLogs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          activeLogsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Checkpoint_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint build() {
        org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint result = new org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.version_ = version_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.writeOrderID_ = writeOrderID_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.queueSize_ = queueSize_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.queueHead_ = queueHead_;
        if (activeLogsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            activeLogs_ = java.util.Collections.unmodifiableList(activeLogs_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.activeLogs_ = activeLogs_;
        } else {
          result.activeLogs_ = activeLogsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint.getDefaultInstance()) return this;
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (other.hasWriteOrderID()) {
          setWriteOrderID(other.getWriteOrderID());
        }
        if (other.hasQueueSize()) {
          setQueueSize(other.getQueueSize());
        }
        if (other.hasQueueHead()) {
          setQueueHead(other.getQueueHead());
        }
        if (activeLogsBuilder_ == null) {
          if (!other.activeLogs_.isEmpty()) {
            if (activeLogs_.isEmpty()) {
              activeLogs_ = other.activeLogs_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureActiveLogsIsMutable();
              activeLogs_.addAll(other.activeLogs_);
            }
            onChanged();
          }
        } else {
          if (!other.activeLogs_.isEmpty()) {
            if (activeLogsBuilder_.isEmpty()) {
              activeLogsBuilder_.dispose();
              activeLogsBuilder_ = null;
              activeLogs_ = other.activeLogs_;
              bitField0_ = (bitField0_ & ~0x00000010);
              activeLogsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getActiveLogsFieldBuilder() : null;
            } else {
              activeLogsBuilder_.addAllMessages(other.activeLogs_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasVersion()) {
          
          return false;
        }
        if (!hasWriteOrderID()) {
          
          return false;
        }
        if (!hasQueueSize()) {
          
          return false;
        }
        if (!hasQueueHead()) {
          
          return false;
        }
        for (int i = 0; i < getActiveLogsCount(); i++) {
          if (!getActiveLogs(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.Checkpoint) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required sfixed32 version = 1;
      private int version_ ;
      /**
       * <code>required sfixed32 version = 1;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required sfixed32 version = 1;</code>
       */
      public int getVersion() {
        return version_;
      }
      /**
       * <code>required sfixed32 version = 1;</code>
       */
      public Builder setVersion(int value) {
        bitField0_ |= 0x00000001;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 version = 1;</code>
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = 0;
        onChanged();
        return this;
      }

      // required sfixed64 writeOrderID = 2;
      private long writeOrderID_ ;
      /**
       * <code>required sfixed64 writeOrderID = 2;</code>
       */
      public boolean hasWriteOrderID() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required sfixed64 writeOrderID = 2;</code>
       */
      public long getWriteOrderID() {
        return writeOrderID_;
      }
      /**
       * <code>required sfixed64 writeOrderID = 2;</code>
       */
      public Builder setWriteOrderID(long value) {
        bitField0_ |= 0x00000002;
        writeOrderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed64 writeOrderID = 2;</code>
       */
      public Builder clearWriteOrderID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        writeOrderID_ = 0L;
        onChanged();
        return this;
      }

      // required sfixed32 queueSize = 3;
      private int queueSize_ ;
      /**
       * <code>required sfixed32 queueSize = 3;</code>
       */
      public boolean hasQueueSize() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required sfixed32 queueSize = 3;</code>
       */
      public int getQueueSize() {
        return queueSize_;
      }
      /**
       * <code>required sfixed32 queueSize = 3;</code>
       */
      public Builder setQueueSize(int value) {
        bitField0_ |= 0x00000004;
        queueSize_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 queueSize = 3;</code>
       */
      public Builder clearQueueSize() {
        bitField0_ = (bitField0_ & ~0x00000004);
        queueSize_ = 0;
        onChanged();
        return this;
      }

      // required sfixed32 queueHead = 4;
      private int queueHead_ ;
      /**
       * <code>required sfixed32 queueHead = 4;</code>
       */
      public boolean hasQueueHead() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required sfixed32 queueHead = 4;</code>
       */
      public int getQueueHead() {
        return queueHead_;
      }
      /**
       * <code>required sfixed32 queueHead = 4;</code>
       */
      public Builder setQueueHead(int value) {
        bitField0_ |= 0x00000008;
        queueHead_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 queueHead = 4;</code>
       */
      public Builder clearQueueHead() {
        bitField0_ = (bitField0_ & ~0x00000008);
        queueHead_ = 0;
        onChanged();
        return this;
      }

      // repeated .ActiveLog activeLogs = 5;
      private java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog> activeLogs_ =
        java.util.Collections.emptyList();
      private void ensureActiveLogsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          activeLogs_ = new java.util.ArrayList<org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog>(activeLogs_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder> activeLogsBuilder_;

      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog> getActiveLogsList() {
        if (activeLogsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(activeLogs_);
        } else {
          return activeLogsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public int getActiveLogsCount() {
        if (activeLogsBuilder_ == null) {
          return activeLogs_.size();
        } else {
          return activeLogsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog getActiveLogs(int index) {
        if (activeLogsBuilder_ == null) {
          return activeLogs_.get(index);
        } else {
          return activeLogsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public Builder setActiveLogs(
          int index, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog value) {
        if (activeLogsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureActiveLogsIsMutable();
          activeLogs_.set(index, value);
          onChanged();
        } else {
          activeLogsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public Builder setActiveLogs(
          int index, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder builderForValue) {
        if (activeLogsBuilder_ == null) {
          ensureActiveLogsIsMutable();
          activeLogs_.set(index, builderForValue.build());
          onChanged();
        } else {
          activeLogsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public Builder addActiveLogs(org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog value) {
        if (activeLogsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureActiveLogsIsMutable();
          activeLogs_.add(value);
          onChanged();
        } else {
          activeLogsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public Builder addActiveLogs(
          int index, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog value) {
        if (activeLogsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureActiveLogsIsMutable();
          activeLogs_.add(index, value);
          onChanged();
        } else {
          activeLogsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public Builder addActiveLogs(
          org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder builderForValue) {
        if (activeLogsBuilder_ == null) {
          ensureActiveLogsIsMutable();
          activeLogs_.add(builderForValue.build());
          onChanged();
        } else {
          activeLogsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public Builder addActiveLogs(
          int index, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder builderForValue) {
        if (activeLogsBuilder_ == null) {
          ensureActiveLogsIsMutable();
          activeLogs_.add(index, builderForValue.build());
          onChanged();
        } else {
          activeLogsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public Builder addAllActiveLogs(
          java.lang.Iterable<? extends org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog> values) {
        if (activeLogsBuilder_ == null) {
          ensureActiveLogsIsMutable();
          super.addAll(values, activeLogs_);
          onChanged();
        } else {
          activeLogsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public Builder clearActiveLogs() {
        if (activeLogsBuilder_ == null) {
          activeLogs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          activeLogsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public Builder removeActiveLogs(int index) {
        if (activeLogsBuilder_ == null) {
          ensureActiveLogsIsMutable();
          activeLogs_.remove(index);
          onChanged();
        } else {
          activeLogsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder getActiveLogsBuilder(
          int index) {
        return getActiveLogsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder getActiveLogsOrBuilder(
          int index) {
        if (activeLogsBuilder_ == null) {
          return activeLogs_.get(index);  } else {
          return activeLogsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public java.util.List<? extends org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder> 
           getActiveLogsOrBuilderList() {
        if (activeLogsBuilder_ != null) {
          return activeLogsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(activeLogs_);
        }
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder addActiveLogsBuilder() {
        return getActiveLogsFieldBuilder().addBuilder(
            org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.getDefaultInstance());
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder addActiveLogsBuilder(
          int index) {
        return getActiveLogsFieldBuilder().addBuilder(
            index, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.getDefaultInstance());
      }
      /**
       * <code>repeated .ActiveLog activeLogs = 5;</code>
       */
      public java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder> 
           getActiveLogsBuilderList() {
        return getActiveLogsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder> 
          getActiveLogsFieldBuilder() {
        if (activeLogsBuilder_ == null) {
          activeLogsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder>(
                  activeLogs_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          activeLogs_ = null;
        }
        return activeLogsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Checkpoint)
    }

    static {
      defaultInstance = new Checkpoint(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Checkpoint)
  }

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

    // required sfixed32 logFileID = 1;
    /**
     * <code>required sfixed32 logFileID = 1;</code>
     */
    boolean hasLogFileID();
    /**
     * <code>required sfixed32 logFileID = 1;</code>
     */
    int getLogFileID();

    // required sfixed32 count = 2;
    /**
     * <code>required sfixed32 count = 2;</code>
     */
    boolean hasCount();
    /**
     * <code>required sfixed32 count = 2;</code>
     */
    int getCount();
  }
  /**
   * Protobuf type {@code ActiveLog}
   */
  public static final class ActiveLog extends
      com.google.protobuf.GeneratedMessage
      implements ActiveLogOrBuilder {
    // Use ActiveLog.newBuilder() to construct.
    private ActiveLog(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ActiveLog(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ActiveLog getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ActiveLog(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              bitField0_ |= 0x00000001;
              logFileID_ = input.readSFixed32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              count_ = input.readSFixed32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_ActiveLog_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_ActiveLog_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.class, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder.class);
    }

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

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

    private int bitField0_;
    // required sfixed32 logFileID = 1;
    public static final int LOGFILEID_FIELD_NUMBER = 1;
    private int logFileID_;
    /**
     * <code>required sfixed32 logFileID = 1;</code>
     */
    public boolean hasLogFileID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required sfixed32 logFileID = 1;</code>
     */
    public int getLogFileID() {
      return logFileID_;
    }

    // required sfixed32 count = 2;
    public static final int COUNT_FIELD_NUMBER = 2;
    private int count_;
    /**
     * <code>required sfixed32 count = 2;</code>
     */
    public boolean hasCount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required sfixed32 count = 2;</code>
     */
    public int getCount() {
      return count_;
    }

    private void initFields() {
      logFileID_ = 0;
      count_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasLogFileID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCount()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeSFixed32(1, logFileID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSFixed32(2, count_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(1, logFileID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(2, count_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ActiveLog}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.ActiveLogOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_ActiveLog_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_ActiveLog_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.class, org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        logFileID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        count_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_ActiveLog_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog build() {
        org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog result = new org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.logFileID_ = logFileID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.count_ = count_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog.getDefaultInstance()) return this;
        if (other.hasLogFileID()) {
          setLogFileID(other.getLogFileID());
        }
        if (other.hasCount()) {
          setCount(other.getCount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasLogFileID()) {
          
          return false;
        }
        if (!hasCount()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.ActiveLog) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required sfixed32 logFileID = 1;
      private int logFileID_ ;
      /**
       * <code>required sfixed32 logFileID = 1;</code>
       */
      public boolean hasLogFileID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required sfixed32 logFileID = 1;</code>
       */
      public int getLogFileID() {
        return logFileID_;
      }
      /**
       * <code>required sfixed32 logFileID = 1;</code>
       */
      public Builder setLogFileID(int value) {
        bitField0_ |= 0x00000001;
        logFileID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 logFileID = 1;</code>
       */
      public Builder clearLogFileID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        logFileID_ = 0;
        onChanged();
        return this;
      }

      // required sfixed32 count = 2;
      private int count_ ;
      /**
       * <code>required sfixed32 count = 2;</code>
       */
      public boolean hasCount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required sfixed32 count = 2;</code>
       */
      public int getCount() {
        return count_;
      }
      /**
       * <code>required sfixed32 count = 2;</code>
       */
      public Builder setCount(int value) {
        bitField0_ |= 0x00000002;
        count_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 count = 2;</code>
       */
      public Builder clearCount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        count_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ActiveLog)
    }

    static {
      defaultInstance = new ActiveLog(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:ActiveLog)
  }

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

    // required sfixed32 version = 1;
    /**
     * <code>required sfixed32 version = 1;</code>
     */
    boolean hasVersion();
    /**
     * <code>required sfixed32 version = 1;</code>
     */
    int getVersion();

    // required sfixed32 logFileID = 2;
    /**
     * <code>required sfixed32 logFileID = 2;</code>
     */
    boolean hasLogFileID();
    /**
     * <code>required sfixed32 logFileID = 2;</code>
     */
    int getLogFileID();

    // required sfixed64 checkpointPosition = 3;
    /**
     * <code>required sfixed64 checkpointPosition = 3;</code>
     */
    boolean hasCheckpointPosition();
    /**
     * <code>required sfixed64 checkpointPosition = 3;</code>
     */
    long getCheckpointPosition();

    // required sfixed64 checkpointWriteOrderID = 4;
    /**
     * <code>required sfixed64 checkpointWriteOrderID = 4;</code>
     */
    boolean hasCheckpointWriteOrderID();
    /**
     * <code>required sfixed64 checkpointWriteOrderID = 4;</code>
     */
    long getCheckpointWriteOrderID();

    // optional .LogFileEncryption encryption = 5;
    /**
     * <code>optional .LogFileEncryption encryption = 5;</code>
     */
    boolean hasEncryption();
    /**
     * <code>optional .LogFileEncryption encryption = 5;</code>
     */
    org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption getEncryption();
    /**
     * <code>optional .LogFileEncryption encryption = 5;</code>
     */
    org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryptionOrBuilder getEncryptionOrBuilder();

    // optional sfixed64 backupCheckpointPosition = 6;
    /**
     * <code>optional sfixed64 backupCheckpointPosition = 6;</code>
     */
    boolean hasBackupCheckpointPosition();
    /**
     * <code>optional sfixed64 backupCheckpointPosition = 6;</code>
     */
    long getBackupCheckpointPosition();

    // optional sfixed64 backupCheckpointWriteOrderID = 7;
    /**
     * <code>optional sfixed64 backupCheckpointWriteOrderID = 7;</code>
     */
    boolean hasBackupCheckpointWriteOrderID();
    /**
     * <code>optional sfixed64 backupCheckpointWriteOrderID = 7;</code>
     */
    long getBackupCheckpointWriteOrderID();
  }
  /**
   * Protobuf type {@code LogFileMetaData}
   */
  public static final class LogFileMetaData extends
      com.google.protobuf.GeneratedMessage
      implements LogFileMetaDataOrBuilder {
    // Use LogFileMetaData.newBuilder() to construct.
    private LogFileMetaData(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LogFileMetaData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public LogFileMetaData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LogFileMetaData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              bitField0_ |= 0x00000001;
              version_ = input.readSFixed32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              logFileID_ = input.readSFixed32();
              break;
            }
            case 25: {
              bitField0_ |= 0x00000004;
              checkpointPosition_ = input.readSFixed64();
              break;
            }
            case 33: {
              bitField0_ |= 0x00000008;
              checkpointWriteOrderID_ = input.readSFixed64();
              break;
            }
            case 42: {
              org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = encryption_.toBuilder();
              }
              encryption_ = input.readMessage(org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(encryption_);
                encryption_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 49: {
              bitField0_ |= 0x00000020;
              backupCheckpointPosition_ = input.readSFixed64();
              break;
            }
            case 57: {
              bitField0_ |= 0x00000040;
              backupCheckpointWriteOrderID_ = input.readSFixed64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileMetaData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileMetaData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData.class, org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData.Builder.class);
    }

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

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

    private int bitField0_;
    // required sfixed32 version = 1;
    public static final int VERSION_FIELD_NUMBER = 1;
    private int version_;
    /**
     * <code>required sfixed32 version = 1;</code>
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required sfixed32 version = 1;</code>
     */
    public int getVersion() {
      return version_;
    }

    // required sfixed32 logFileID = 2;
    public static final int LOGFILEID_FIELD_NUMBER = 2;
    private int logFileID_;
    /**
     * <code>required sfixed32 logFileID = 2;</code>
     */
    public boolean hasLogFileID() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required sfixed32 logFileID = 2;</code>
     */
    public int getLogFileID() {
      return logFileID_;
    }

    // required sfixed64 checkpointPosition = 3;
    public static final int CHECKPOINTPOSITION_FIELD_NUMBER = 3;
    private long checkpointPosition_;
    /**
     * <code>required sfixed64 checkpointPosition = 3;</code>
     */
    public boolean hasCheckpointPosition() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required sfixed64 checkpointPosition = 3;</code>
     */
    public long getCheckpointPosition() {
      return checkpointPosition_;
    }

    // required sfixed64 checkpointWriteOrderID = 4;
    public static final int CHECKPOINTWRITEORDERID_FIELD_NUMBER = 4;
    private long checkpointWriteOrderID_;
    /**
     * <code>required sfixed64 checkpointWriteOrderID = 4;</code>
     */
    public boolean hasCheckpointWriteOrderID() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required sfixed64 checkpointWriteOrderID = 4;</code>
     */
    public long getCheckpointWriteOrderID() {
      return checkpointWriteOrderID_;
    }

    // optional .LogFileEncryption encryption = 5;
    public static final int ENCRYPTION_FIELD_NUMBER = 5;
    private org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption encryption_;
    /**
     * <code>optional .LogFileEncryption encryption = 5;</code>
     */
    public boolean hasEncryption() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional .LogFileEncryption encryption = 5;</code>
     */
    public org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption getEncryption() {
      return encryption_;
    }
    /**
     * <code>optional .LogFileEncryption encryption = 5;</code>
     */
    public org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryptionOrBuilder getEncryptionOrBuilder() {
      return encryption_;
    }

    // optional sfixed64 backupCheckpointPosition = 6;
    public static final int BACKUPCHECKPOINTPOSITION_FIELD_NUMBER = 6;
    private long backupCheckpointPosition_;
    /**
     * <code>optional sfixed64 backupCheckpointPosition = 6;</code>
     */
    public boolean hasBackupCheckpointPosition() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional sfixed64 backupCheckpointPosition = 6;</code>
     */
    public long getBackupCheckpointPosition() {
      return backupCheckpointPosition_;
    }

    // optional sfixed64 backupCheckpointWriteOrderID = 7;
    public static final int BACKUPCHECKPOINTWRITEORDERID_FIELD_NUMBER = 7;
    private long backupCheckpointWriteOrderID_;
    /**
     * <code>optional sfixed64 backupCheckpointWriteOrderID = 7;</code>
     */
    public boolean hasBackupCheckpointWriteOrderID() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional sfixed64 backupCheckpointWriteOrderID = 7;</code>
     */
    public long getBackupCheckpointWriteOrderID() {
      return backupCheckpointWriteOrderID_;
    }

    private void initFields() {
      version_ = 0;
      logFileID_ = 0;
      checkpointPosition_ = 0L;
      checkpointWriteOrderID_ = 0L;
      encryption_ = org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.getDefaultInstance();
      backupCheckpointPosition_ = 0L;
      backupCheckpointWriteOrderID_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLogFileID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCheckpointPosition()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCheckpointWriteOrderID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasEncryption()) {
        if (!getEncryption().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeSFixed32(1, version_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSFixed32(2, logFileID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeSFixed64(3, checkpointPosition_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeSFixed64(4, checkpointWriteOrderID_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, encryption_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeSFixed64(6, backupCheckpointPosition_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeSFixed64(7, backupCheckpointWriteOrderID_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(1, version_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(2, logFileID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed64Size(3, checkpointPosition_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed64Size(4, checkpointWriteOrderID_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, encryption_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed64Size(6, backupCheckpointPosition_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed64Size(7, backupCheckpointWriteOrderID_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code LogFileMetaData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileMetaData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileMetaData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData.class, org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEncryptionFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        version_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        logFileID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        checkpointPosition_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        checkpointWriteOrderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (encryptionBuilder_ == null) {
          encryption_ = org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.getDefaultInstance();
        } else {
          encryptionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        backupCheckpointPosition_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        backupCheckpointWriteOrderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileMetaData_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData build() {
        org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData result = new org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.version_ = version_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.logFileID_ = logFileID_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.checkpointPosition_ = checkpointPosition_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.checkpointWriteOrderID_ = checkpointWriteOrderID_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (encryptionBuilder_ == null) {
          result.encryption_ = encryption_;
        } else {
          result.encryption_ = encryptionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.backupCheckpointPosition_ = backupCheckpointPosition_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.backupCheckpointWriteOrderID_ = backupCheckpointWriteOrderID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData.getDefaultInstance()) return this;
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        if (other.hasLogFileID()) {
          setLogFileID(other.getLogFileID());
        }
        if (other.hasCheckpointPosition()) {
          setCheckpointPosition(other.getCheckpointPosition());
        }
        if (other.hasCheckpointWriteOrderID()) {
          setCheckpointWriteOrderID(other.getCheckpointWriteOrderID());
        }
        if (other.hasEncryption()) {
          mergeEncryption(other.getEncryption());
        }
        if (other.hasBackupCheckpointPosition()) {
          setBackupCheckpointPosition(other.getBackupCheckpointPosition());
        }
        if (other.hasBackupCheckpointWriteOrderID()) {
          setBackupCheckpointWriteOrderID(other.getBackupCheckpointWriteOrderID());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasVersion()) {
          
          return false;
        }
        if (!hasLogFileID()) {
          
          return false;
        }
        if (!hasCheckpointPosition()) {
          
          return false;
        }
        if (!hasCheckpointWriteOrderID()) {
          
          return false;
        }
        if (hasEncryption()) {
          if (!getEncryption().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.LogFileMetaData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required sfixed32 version = 1;
      private int version_ ;
      /**
       * <code>required sfixed32 version = 1;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required sfixed32 version = 1;</code>
       */
      public int getVersion() {
        return version_;
      }
      /**
       * <code>required sfixed32 version = 1;</code>
       */
      public Builder setVersion(int value) {
        bitField0_ |= 0x00000001;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 version = 1;</code>
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = 0;
        onChanged();
        return this;
      }

      // required sfixed32 logFileID = 2;
      private int logFileID_ ;
      /**
       * <code>required sfixed32 logFileID = 2;</code>
       */
      public boolean hasLogFileID() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required sfixed32 logFileID = 2;</code>
       */
      public int getLogFileID() {
        return logFileID_;
      }
      /**
       * <code>required sfixed32 logFileID = 2;</code>
       */
      public Builder setLogFileID(int value) {
        bitField0_ |= 0x00000002;
        logFileID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 logFileID = 2;</code>
       */
      public Builder clearLogFileID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        logFileID_ = 0;
        onChanged();
        return this;
      }

      // required sfixed64 checkpointPosition = 3;
      private long checkpointPosition_ ;
      /**
       * <code>required sfixed64 checkpointPosition = 3;</code>
       */
      public boolean hasCheckpointPosition() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required sfixed64 checkpointPosition = 3;</code>
       */
      public long getCheckpointPosition() {
        return checkpointPosition_;
      }
      /**
       * <code>required sfixed64 checkpointPosition = 3;</code>
       */
      public Builder setCheckpointPosition(long value) {
        bitField0_ |= 0x00000004;
        checkpointPosition_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed64 checkpointPosition = 3;</code>
       */
      public Builder clearCheckpointPosition() {
        bitField0_ = (bitField0_ & ~0x00000004);
        checkpointPosition_ = 0L;
        onChanged();
        return this;
      }

      // required sfixed64 checkpointWriteOrderID = 4;
      private long checkpointWriteOrderID_ ;
      /**
       * <code>required sfixed64 checkpointWriteOrderID = 4;</code>
       */
      public boolean hasCheckpointWriteOrderID() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required sfixed64 checkpointWriteOrderID = 4;</code>
       */
      public long getCheckpointWriteOrderID() {
        return checkpointWriteOrderID_;
      }
      /**
       * <code>required sfixed64 checkpointWriteOrderID = 4;</code>
       */
      public Builder setCheckpointWriteOrderID(long value) {
        bitField0_ |= 0x00000008;
        checkpointWriteOrderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed64 checkpointWriteOrderID = 4;</code>
       */
      public Builder clearCheckpointWriteOrderID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        checkpointWriteOrderID_ = 0L;
        onChanged();
        return this;
      }

      // optional .LogFileEncryption encryption = 5;
      private org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption encryption_ = org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption, org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.Builder, org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryptionOrBuilder> encryptionBuilder_;
      /**
       * <code>optional .LogFileEncryption encryption = 5;</code>
       */
      public boolean hasEncryption() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .LogFileEncryption encryption = 5;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption getEncryption() {
        if (encryptionBuilder_ == null) {
          return encryption_;
        } else {
          return encryptionBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .LogFileEncryption encryption = 5;</code>
       */
      public Builder setEncryption(org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption value) {
        if (encryptionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          encryption_ = value;
          onChanged();
        } else {
          encryptionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .LogFileEncryption encryption = 5;</code>
       */
      public Builder setEncryption(
          org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.Builder builderForValue) {
        if (encryptionBuilder_ == null) {
          encryption_ = builderForValue.build();
          onChanged();
        } else {
          encryptionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .LogFileEncryption encryption = 5;</code>
       */
      public Builder mergeEncryption(org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption value) {
        if (encryptionBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              encryption_ != org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.getDefaultInstance()) {
            encryption_ =
              org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.newBuilder(encryption_).mergeFrom(value).buildPartial();
          } else {
            encryption_ = value;
          }
          onChanged();
        } else {
          encryptionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .LogFileEncryption encryption = 5;</code>
       */
      public Builder clearEncryption() {
        if (encryptionBuilder_ == null) {
          encryption_ = org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.getDefaultInstance();
          onChanged();
        } else {
          encryptionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>optional .LogFileEncryption encryption = 5;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.Builder getEncryptionBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getEncryptionFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .LogFileEncryption encryption = 5;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryptionOrBuilder getEncryptionOrBuilder() {
        if (encryptionBuilder_ != null) {
          return encryptionBuilder_.getMessageOrBuilder();
        } else {
          return encryption_;
        }
      }
      /**
       * <code>optional .LogFileEncryption encryption = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption, org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.Builder, org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryptionOrBuilder> 
          getEncryptionFieldBuilder() {
        if (encryptionBuilder_ == null) {
          encryptionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption, org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.Builder, org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryptionOrBuilder>(
                  encryption_,
                  getParentForChildren(),
                  isClean());
          encryption_ = null;
        }
        return encryptionBuilder_;
      }

      // optional sfixed64 backupCheckpointPosition = 6;
      private long backupCheckpointPosition_ ;
      /**
       * <code>optional sfixed64 backupCheckpointPosition = 6;</code>
       */
      public boolean hasBackupCheckpointPosition() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional sfixed64 backupCheckpointPosition = 6;</code>
       */
      public long getBackupCheckpointPosition() {
        return backupCheckpointPosition_;
      }
      /**
       * <code>optional sfixed64 backupCheckpointPosition = 6;</code>
       */
      public Builder setBackupCheckpointPosition(long value) {
        bitField0_ |= 0x00000020;
        backupCheckpointPosition_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional sfixed64 backupCheckpointPosition = 6;</code>
       */
      public Builder clearBackupCheckpointPosition() {
        bitField0_ = (bitField0_ & ~0x00000020);
        backupCheckpointPosition_ = 0L;
        onChanged();
        return this;
      }

      // optional sfixed64 backupCheckpointWriteOrderID = 7;
      private long backupCheckpointWriteOrderID_ ;
      /**
       * <code>optional sfixed64 backupCheckpointWriteOrderID = 7;</code>
       */
      public boolean hasBackupCheckpointWriteOrderID() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional sfixed64 backupCheckpointWriteOrderID = 7;</code>
       */
      public long getBackupCheckpointWriteOrderID() {
        return backupCheckpointWriteOrderID_;
      }
      /**
       * <code>optional sfixed64 backupCheckpointWriteOrderID = 7;</code>
       */
      public Builder setBackupCheckpointWriteOrderID(long value) {
        bitField0_ |= 0x00000040;
        backupCheckpointWriteOrderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional sfixed64 backupCheckpointWriteOrderID = 7;</code>
       */
      public Builder clearBackupCheckpointWriteOrderID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        backupCheckpointWriteOrderID_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LogFileMetaData)
    }

    static {
      defaultInstance = new LogFileMetaData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:LogFileMetaData)
  }

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

    // required string cipherProvider = 1;
    /**
     * <code>required string cipherProvider = 1;</code>
     */
    boolean hasCipherProvider();
    /**
     * <code>required string cipherProvider = 1;</code>
     */
    java.lang.String getCipherProvider();
    /**
     * <code>required string cipherProvider = 1;</code>
     */
    com.google.protobuf.ByteString
        getCipherProviderBytes();

    // required string keyAlias = 2;
    /**
     * <code>required string keyAlias = 2;</code>
     */
    boolean hasKeyAlias();
    /**
     * <code>required string keyAlias = 2;</code>
     */
    java.lang.String getKeyAlias();
    /**
     * <code>required string keyAlias = 2;</code>
     */
    com.google.protobuf.ByteString
        getKeyAliasBytes();

    // optional bytes parameters = 3;
    /**
     * <code>optional bytes parameters = 3;</code>
     */
    boolean hasParameters();
    /**
     * <code>optional bytes parameters = 3;</code>
     */
    com.google.protobuf.ByteString getParameters();
  }
  /**
   * Protobuf type {@code LogFileEncryption}
   */
  public static final class LogFileEncryption extends
      com.google.protobuf.GeneratedMessage
      implements LogFileEncryptionOrBuilder {
    // Use LogFileEncryption.newBuilder() to construct.
    private LogFileEncryption(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LogFileEncryption(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public LogFileEncryption getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LogFileEncryption(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              cipherProvider_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              keyAlias_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              parameters_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileEncryption_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileEncryption_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.class, org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.Builder.class);
    }

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

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

    private int bitField0_;
    // required string cipherProvider = 1;
    public static final int CIPHERPROVIDER_FIELD_NUMBER = 1;
    private java.lang.Object cipherProvider_;
    /**
     * <code>required string cipherProvider = 1;</code>
     */
    public boolean hasCipherProvider() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string cipherProvider = 1;</code>
     */
    public java.lang.String getCipherProvider() {
      java.lang.Object ref = cipherProvider_;
      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()) {
          cipherProvider_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string cipherProvider = 1;</code>
     */
    public com.google.protobuf.ByteString
        getCipherProviderBytes() {
      java.lang.Object ref = cipherProvider_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cipherProvider_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required string keyAlias = 2;
    public static final int KEYALIAS_FIELD_NUMBER = 2;
    private java.lang.Object keyAlias_;
    /**
     * <code>required string keyAlias = 2;</code>
     */
    public boolean hasKeyAlias() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string keyAlias = 2;</code>
     */
    public java.lang.String getKeyAlias() {
      java.lang.Object ref = keyAlias_;
      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()) {
          keyAlias_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string keyAlias = 2;</code>
     */
    public com.google.protobuf.ByteString
        getKeyAliasBytes() {
      java.lang.Object ref = keyAlias_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        keyAlias_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional bytes parameters = 3;
    public static final int PARAMETERS_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString parameters_;
    /**
     * <code>optional bytes parameters = 3;</code>
     */
    public boolean hasParameters() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes parameters = 3;</code>
     */
    public com.google.protobuf.ByteString getParameters() {
      return parameters_;
    }

    private void initFields() {
      cipherProvider_ = "";
      keyAlias_ = "";
      parameters_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasCipherProvider()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasKeyAlias()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getCipherProviderBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getKeyAliasBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, parameters_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getCipherProviderBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getKeyAliasBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, parameters_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code LogFileEncryption}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryptionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileEncryption_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileEncryption_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.class, org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        cipherProvider_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        keyAlias_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        parameters_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_LogFileEncryption_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption build() {
        org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption result = new org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.cipherProvider_ = cipherProvider_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.keyAlias_ = keyAlias_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.parameters_ = parameters_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption.getDefaultInstance()) return this;
        if (other.hasCipherProvider()) {
          bitField0_ |= 0x00000001;
          cipherProvider_ = other.cipherProvider_;
          onChanged();
        }
        if (other.hasKeyAlias()) {
          bitField0_ |= 0x00000002;
          keyAlias_ = other.keyAlias_;
          onChanged();
        }
        if (other.hasParameters()) {
          setParameters(other.getParameters());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasCipherProvider()) {
          
          return false;
        }
        if (!hasKeyAlias()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.LogFileEncryption) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string cipherProvider = 1;
      private java.lang.Object cipherProvider_ = "";
      /**
       * <code>required string cipherProvider = 1;</code>
       */
      public boolean hasCipherProvider() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string cipherProvider = 1;</code>
       */
      public java.lang.String getCipherProvider() {
        java.lang.Object ref = cipherProvider_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          cipherProvider_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string cipherProvider = 1;</code>
       */
      public com.google.protobuf.ByteString
          getCipherProviderBytes() {
        java.lang.Object ref = cipherProvider_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          cipherProvider_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string cipherProvider = 1;</code>
       */
      public Builder setCipherProvider(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        cipherProvider_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string cipherProvider = 1;</code>
       */
      public Builder clearCipherProvider() {
        bitField0_ = (bitField0_ & ~0x00000001);
        cipherProvider_ = getDefaultInstance().getCipherProvider();
        onChanged();
        return this;
      }
      /**
       * <code>required string cipherProvider = 1;</code>
       */
      public Builder setCipherProviderBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        cipherProvider_ = value;
        onChanged();
        return this;
      }

      // required string keyAlias = 2;
      private java.lang.Object keyAlias_ = "";
      /**
       * <code>required string keyAlias = 2;</code>
       */
      public boolean hasKeyAlias() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string keyAlias = 2;</code>
       */
      public java.lang.String getKeyAlias() {
        java.lang.Object ref = keyAlias_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          keyAlias_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string keyAlias = 2;</code>
       */
      public com.google.protobuf.ByteString
          getKeyAliasBytes() {
        java.lang.Object ref = keyAlias_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          keyAlias_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string keyAlias = 2;</code>
       */
      public Builder setKeyAlias(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        keyAlias_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string keyAlias = 2;</code>
       */
      public Builder clearKeyAlias() {
        bitField0_ = (bitField0_ & ~0x00000002);
        keyAlias_ = getDefaultInstance().getKeyAlias();
        onChanged();
        return this;
      }
      /**
       * <code>required string keyAlias = 2;</code>
       */
      public Builder setKeyAliasBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        keyAlias_ = value;
        onChanged();
        return this;
      }

      // optional bytes parameters = 3;
      private com.google.protobuf.ByteString parameters_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes parameters = 3;</code>
       */
      public boolean hasParameters() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes parameters = 3;</code>
       */
      public com.google.protobuf.ByteString getParameters() {
        return parameters_;
      }
      /**
       * <code>optional bytes parameters = 3;</code>
       */
      public Builder setParameters(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        parameters_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes parameters = 3;</code>
       */
      public Builder clearParameters() {
        bitField0_ = (bitField0_ & ~0x00000004);
        parameters_ = getDefaultInstance().getParameters();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LogFileEncryption)
    }

    static {
      defaultInstance = new LogFileEncryption(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:LogFileEncryption)
  }

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

    // required sfixed32 type = 1;
    /**
     * <code>required sfixed32 type = 1;</code>
     */
    boolean hasType();
    /**
     * <code>required sfixed32 type = 1;</code>
     */
    int getType();

    // required sfixed64 transactionID = 2;
    /**
     * <code>required sfixed64 transactionID = 2;</code>
     */
    boolean hasTransactionID();
    /**
     * <code>required sfixed64 transactionID = 2;</code>
     */
    long getTransactionID();

    // required sfixed64 writeOrderID = 3;
    /**
     * <code>required sfixed64 writeOrderID = 3;</code>
     */
    boolean hasWriteOrderID();
    /**
     * <code>required sfixed64 writeOrderID = 3;</code>
     */
    long getWriteOrderID();
  }
  /**
   * Protobuf type {@code TransactionEventHeader}
   */
  public static final class TransactionEventHeader extends
      com.google.protobuf.GeneratedMessage
      implements TransactionEventHeaderOrBuilder {
    // Use TransactionEventHeader.newBuilder() to construct.
    private TransactionEventHeader(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private TransactionEventHeader(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public TransactionEventHeader getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private TransactionEventHeader(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              bitField0_ |= 0x00000001;
              type_ = input.readSFixed32();
              break;
            }
            case 17: {
              bitField0_ |= 0x00000002;
              transactionID_ = input.readSFixed64();
              break;
            }
            case 25: {
              bitField0_ |= 0x00000004;
              writeOrderID_ = input.readSFixed64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventHeader_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventHeader_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader.class, org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader.Builder.class);
    }

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

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

    private int bitField0_;
    // required sfixed32 type = 1;
    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <code>required sfixed32 type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required sfixed32 type = 1;</code>
     */
    public int getType() {
      return type_;
    }

    // required sfixed64 transactionID = 2;
    public static final int TRANSACTIONID_FIELD_NUMBER = 2;
    private long transactionID_;
    /**
     * <code>required sfixed64 transactionID = 2;</code>
     */
    public boolean hasTransactionID() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required sfixed64 transactionID = 2;</code>
     */
    public long getTransactionID() {
      return transactionID_;
    }

    // required sfixed64 writeOrderID = 3;
    public static final int WRITEORDERID_FIELD_NUMBER = 3;
    private long writeOrderID_;
    /**
     * <code>required sfixed64 writeOrderID = 3;</code>
     */
    public boolean hasWriteOrderID() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required sfixed64 writeOrderID = 3;</code>
     */
    public long getWriteOrderID() {
      return writeOrderID_;
    }

    private void initFields() {
      type_ = 0;
      transactionID_ = 0L;
      writeOrderID_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTransactionID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasWriteOrderID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeSFixed32(1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSFixed64(2, transactionID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeSFixed64(3, writeOrderID_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed64Size(2, transactionID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed64Size(3, writeOrderID_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code TransactionEventHeader}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeaderOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventHeader_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventHeader_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader.class, org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        transactionID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        writeOrderID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventHeader_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader build() {
        org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader result = new org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.transactionID_ = transactionID_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.writeOrderID_ = writeOrderID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasTransactionID()) {
          setTransactionID(other.getTransactionID());
        }
        if (other.hasWriteOrderID()) {
          setWriteOrderID(other.getWriteOrderID());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasType()) {
          
          return false;
        }
        if (!hasTransactionID()) {
          
          return false;
        }
        if (!hasWriteOrderID()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventHeader) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required sfixed32 type = 1;
      private int type_ ;
      /**
       * <code>required sfixed32 type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required sfixed32 type = 1;</code>
       */
      public int getType() {
        return type_;
      }
      /**
       * <code>required sfixed32 type = 1;</code>
       */
      public Builder setType(int value) {
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        onChanged();
        return this;
      }

      // required sfixed64 transactionID = 2;
      private long transactionID_ ;
      /**
       * <code>required sfixed64 transactionID = 2;</code>
       */
      public boolean hasTransactionID() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required sfixed64 transactionID = 2;</code>
       */
      public long getTransactionID() {
        return transactionID_;
      }
      /**
       * <code>required sfixed64 transactionID = 2;</code>
       */
      public Builder setTransactionID(long value) {
        bitField0_ |= 0x00000002;
        transactionID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed64 transactionID = 2;</code>
       */
      public Builder clearTransactionID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        transactionID_ = 0L;
        onChanged();
        return this;
      }

      // required sfixed64 writeOrderID = 3;
      private long writeOrderID_ ;
      /**
       * <code>required sfixed64 writeOrderID = 3;</code>
       */
      public boolean hasWriteOrderID() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required sfixed64 writeOrderID = 3;</code>
       */
      public long getWriteOrderID() {
        return writeOrderID_;
      }
      /**
       * <code>required sfixed64 writeOrderID = 3;</code>
       */
      public Builder setWriteOrderID(long value) {
        bitField0_ |= 0x00000004;
        writeOrderID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed64 writeOrderID = 3;</code>
       */
      public Builder clearWriteOrderID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        writeOrderID_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:TransactionEventHeader)
    }

    static {
      defaultInstance = new TransactionEventHeader(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:TransactionEventHeader)
  }

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

    // required .FlumeEvent event = 1;
    /**
     * <code>required .FlumeEvent event = 1;</code>
     */
    boolean hasEvent();
    /**
     * <code>required .FlumeEvent event = 1;</code>
     */
    org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent getEvent();
    /**
     * <code>required .FlumeEvent event = 1;</code>
     */
    org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventOrBuilder getEventOrBuilder();

    // optional sfixed64 checksum = 2;
    /**
     * <code>optional sfixed64 checksum = 2;</code>
     */
    boolean hasChecksum();
    /**
     * <code>optional sfixed64 checksum = 2;</code>
     */
    long getChecksum();
  }
  /**
   * Protobuf type {@code Put}
   */
  public static final class Put extends
      com.google.protobuf.GeneratedMessage
      implements PutOrBuilder {
    // Use Put.newBuilder() to construct.
    private Put(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Put(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Put getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Put(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = event_.toBuilder();
              }
              event_ = input.readMessage(org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(event_);
                event_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 17: {
              bitField0_ |= 0x00000002;
              checksum_ = input.readSFixed64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Put_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Put_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.Put.class, org.apache.flume.channel.file.proto.ProtosFactory.Put.Builder.class);
    }

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

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

    private int bitField0_;
    // required .FlumeEvent event = 1;
    public static final int EVENT_FIELD_NUMBER = 1;
    private org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent event_;
    /**
     * <code>required .FlumeEvent event = 1;</code>
     */
    public boolean hasEvent() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .FlumeEvent event = 1;</code>
     */
    public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent getEvent() {
      return event_;
    }
    /**
     * <code>required .FlumeEvent event = 1;</code>
     */
    public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventOrBuilder getEventOrBuilder() {
      return event_;
    }

    // optional sfixed64 checksum = 2;
    public static final int CHECKSUM_FIELD_NUMBER = 2;
    private long checksum_;
    /**
     * <code>optional sfixed64 checksum = 2;</code>
     */
    public boolean hasChecksum() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional sfixed64 checksum = 2;</code>
     */
    public long getChecksum() {
      return checksum_;
    }

    private void initFields() {
      event_ = org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.getDefaultInstance();
      checksum_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasEvent()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getEvent().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, event_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSFixed64(2, checksum_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, event_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed64Size(2, checksum_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Put parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.Put prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Put}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.PutOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Put_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Put_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.Put.class, org.apache.flume.channel.file.proto.ProtosFactory.Put.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.Put.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEventFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (eventBuilder_ == null) {
          event_ = org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.getDefaultInstance();
        } else {
          eventBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        checksum_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Put_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Put getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.Put.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Put build() {
        org.apache.flume.channel.file.proto.ProtosFactory.Put result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Put buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.Put result = new org.apache.flume.channel.file.proto.ProtosFactory.Put(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (eventBuilder_ == null) {
          result.event_ = event_;
        } else {
          result.event_ = eventBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.checksum_ = checksum_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.Put) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.Put)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.Put other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.Put.getDefaultInstance()) return this;
        if (other.hasEvent()) {
          mergeEvent(other.getEvent());
        }
        if (other.hasChecksum()) {
          setChecksum(other.getChecksum());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasEvent()) {
          
          return false;
        }
        if (!getEvent().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.Put parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.Put) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .FlumeEvent event = 1;
      private org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent event_ = org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.Builder, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventOrBuilder> eventBuilder_;
      /**
       * <code>required .FlumeEvent event = 1;</code>
       */
      public boolean hasEvent() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .FlumeEvent event = 1;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent getEvent() {
        if (eventBuilder_ == null) {
          return event_;
        } else {
          return eventBuilder_.getMessage();
        }
      }
      /**
       * <code>required .FlumeEvent event = 1;</code>
       */
      public Builder setEvent(org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent value) {
        if (eventBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          event_ = value;
          onChanged();
        } else {
          eventBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .FlumeEvent event = 1;</code>
       */
      public Builder setEvent(
          org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.Builder builderForValue) {
        if (eventBuilder_ == null) {
          event_ = builderForValue.build();
          onChanged();
        } else {
          eventBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .FlumeEvent event = 1;</code>
       */
      public Builder mergeEvent(org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent value) {
        if (eventBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              event_ != org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.getDefaultInstance()) {
            event_ =
              org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.newBuilder(event_).mergeFrom(value).buildPartial();
          } else {
            event_ = value;
          }
          onChanged();
        } else {
          eventBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .FlumeEvent event = 1;</code>
       */
      public Builder clearEvent() {
        if (eventBuilder_ == null) {
          event_ = org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.getDefaultInstance();
          onChanged();
        } else {
          eventBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .FlumeEvent event = 1;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.Builder getEventBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getEventFieldBuilder().getBuilder();
      }
      /**
       * <code>required .FlumeEvent event = 1;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventOrBuilder getEventOrBuilder() {
        if (eventBuilder_ != null) {
          return eventBuilder_.getMessageOrBuilder();
        } else {
          return event_;
        }
      }
      /**
       * <code>required .FlumeEvent event = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.Builder, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventOrBuilder> 
          getEventFieldBuilder() {
        if (eventBuilder_ == null) {
          eventBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.Builder, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventOrBuilder>(
                  event_,
                  getParentForChildren(),
                  isClean());
          event_ = null;
        }
        return eventBuilder_;
      }

      // optional sfixed64 checksum = 2;
      private long checksum_ ;
      /**
       * <code>optional sfixed64 checksum = 2;</code>
       */
      public boolean hasChecksum() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional sfixed64 checksum = 2;</code>
       */
      public long getChecksum() {
        return checksum_;
      }
      /**
       * <code>optional sfixed64 checksum = 2;</code>
       */
      public Builder setChecksum(long value) {
        bitField0_ |= 0x00000002;
        checksum_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional sfixed64 checksum = 2;</code>
       */
      public Builder clearChecksum() {
        bitField0_ = (bitField0_ & ~0x00000002);
        checksum_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Put)
    }

    static {
      defaultInstance = new Put(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Put)
  }

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

    // required sfixed32 fileID = 1;
    /**
     * <code>required sfixed32 fileID = 1;</code>
     */
    boolean hasFileID();
    /**
     * <code>required sfixed32 fileID = 1;</code>
     */
    int getFileID();

    // required sfixed32 offset = 2;
    /**
     * <code>required sfixed32 offset = 2;</code>
     */
    boolean hasOffset();
    /**
     * <code>required sfixed32 offset = 2;</code>
     */
    int getOffset();
  }
  /**
   * Protobuf type {@code Take}
   */
  public static final class Take extends
      com.google.protobuf.GeneratedMessage
      implements TakeOrBuilder {
    // Use Take.newBuilder() to construct.
    private Take(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Take(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Take getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Take(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              bitField0_ |= 0x00000001;
              fileID_ = input.readSFixed32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              offset_ = input.readSFixed32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Take_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Take_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.Take.class, org.apache.flume.channel.file.proto.ProtosFactory.Take.Builder.class);
    }

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

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

    private int bitField0_;
    // required sfixed32 fileID = 1;
    public static final int FILEID_FIELD_NUMBER = 1;
    private int fileID_;
    /**
     * <code>required sfixed32 fileID = 1;</code>
     */
    public boolean hasFileID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required sfixed32 fileID = 1;</code>
     */
    public int getFileID() {
      return fileID_;
    }

    // required sfixed32 offset = 2;
    public static final int OFFSET_FIELD_NUMBER = 2;
    private int offset_;
    /**
     * <code>required sfixed32 offset = 2;</code>
     */
    public boolean hasOffset() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required sfixed32 offset = 2;</code>
     */
    public int getOffset() {
      return offset_;
    }

    private void initFields() {
      fileID_ = 0;
      offset_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasFileID()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasOffset()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeSFixed32(1, fileID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSFixed32(2, offset_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(1, fileID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(2, offset_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Take parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.Take prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Take}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.TakeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Take_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Take_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.Take.class, org.apache.flume.channel.file.proto.ProtosFactory.Take.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.Take.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        fileID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        offset_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Take_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Take getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.Take.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Take build() {
        org.apache.flume.channel.file.proto.ProtosFactory.Take result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Take buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.Take result = new org.apache.flume.channel.file.proto.ProtosFactory.Take(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.fileID_ = fileID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.offset_ = offset_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.Take) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.Take)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.Take other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.Take.getDefaultInstance()) return this;
        if (other.hasFileID()) {
          setFileID(other.getFileID());
        }
        if (other.hasOffset()) {
          setOffset(other.getOffset());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasFileID()) {
          
          return false;
        }
        if (!hasOffset()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.Take parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.Take) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required sfixed32 fileID = 1;
      private int fileID_ ;
      /**
       * <code>required sfixed32 fileID = 1;</code>
       */
      public boolean hasFileID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required sfixed32 fileID = 1;</code>
       */
      public int getFileID() {
        return fileID_;
      }
      /**
       * <code>required sfixed32 fileID = 1;</code>
       */
      public Builder setFileID(int value) {
        bitField0_ |= 0x00000001;
        fileID_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 fileID = 1;</code>
       */
      public Builder clearFileID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        fileID_ = 0;
        onChanged();
        return this;
      }

      // required sfixed32 offset = 2;
      private int offset_ ;
      /**
       * <code>required sfixed32 offset = 2;</code>
       */
      public boolean hasOffset() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required sfixed32 offset = 2;</code>
       */
      public int getOffset() {
        return offset_;
      }
      /**
       * <code>required sfixed32 offset = 2;</code>
       */
      public Builder setOffset(int value) {
        bitField0_ |= 0x00000002;
        offset_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 offset = 2;</code>
       */
      public Builder clearOffset() {
        bitField0_ = (bitField0_ & ~0x00000002);
        offset_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Take)
    }

    static {
      defaultInstance = new Take(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Take)
  }

  public interface RollbackOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }

  /**
   * Protobuf type {@code Rollback}
   */
  public static final class Rollback extends com.google.protobuf.GeneratedMessage
                                     implements RollbackOrBuilder {
    // Use Rollback.newBuilder() to construct.
    private Rollback(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }

    private Rollback(boolean noInit) {
      this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

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

    public Rollback getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Rollback(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Rollback_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Rollback_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.Rollback.class, org.apache.flume.channel.file.proto.ProtosFactory.Rollback.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Rollback parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.Rollback prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Rollback}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.RollbackOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Rollback_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Rollback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.Rollback.class, org.apache.flume.channel.file.proto.ProtosFactory.Rollback.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.Rollback.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Rollback_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Rollback getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.Rollback.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Rollback build() {
        org.apache.flume.channel.file.proto.ProtosFactory.Rollback result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Rollback buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.Rollback result = new org.apache.flume.channel.file.proto.ProtosFactory.Rollback(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.Rollback) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.Rollback)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.Rollback other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.Rollback.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.Rollback parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.Rollback) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Rollback)
    }

    static {
      defaultInstance = new Rollback(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Rollback)
  }

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

    // required sfixed32 type = 1;
    /**
     * <code>required sfixed32 type = 1;</code>
     */
    boolean hasType();
    /**
     * <code>required sfixed32 type = 1;</code>
     */
    int getType();
  }
  /**
   * Protobuf type {@code Commit}
   */
  public static final class Commit extends
      com.google.protobuf.GeneratedMessage
      implements CommitOrBuilder {
    // Use Commit.newBuilder() to construct.
    private Commit(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Commit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Commit getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Commit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              bitField0_ |= 0x00000001;
              type_ = input.readSFixed32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Commit_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Commit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.Commit.class, org.apache.flume.channel.file.proto.ProtosFactory.Commit.Builder.class);
    }

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

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

    private int bitField0_;
    // required sfixed32 type = 1;
    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <code>required sfixed32 type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required sfixed32 type = 1;</code>
     */
    public int getType() {
      return type_;
    }

    private void initFields() {
      type_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeSFixed32(1, type_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(1, type_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.Commit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.Commit prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Commit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.CommitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Commit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Commit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.Commit.class, org.apache.flume.channel.file.proto.ProtosFactory.Commit.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.Commit.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_Commit_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Commit getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.Commit.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Commit build() {
        org.apache.flume.channel.file.proto.ProtosFactory.Commit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.Commit buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.Commit result = new org.apache.flume.channel.file.proto.ProtosFactory.Commit(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.Commit) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.Commit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.Commit other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.Commit.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasType()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.Commit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.Commit) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required sfixed32 type = 1;
      private int type_ ;
      /**
       * <code>required sfixed32 type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required sfixed32 type = 1;</code>
       */
      public int getType() {
        return type_;
      }
      /**
       * <code>required sfixed32 type = 1;</code>
       */
      public Builder setType(int value) {
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Commit)
    }

    static {
      defaultInstance = new Commit(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Commit)
  }

  public interface TransactionEventFooterOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code TransactionEventFooter}
   */
  public static final class TransactionEventFooter extends
      com.google.protobuf.GeneratedMessage
      implements TransactionEventFooterOrBuilder {
    // Use TransactionEventFooter.newBuilder() to construct.
    private TransactionEventFooter(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private TransactionEventFooter(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public TransactionEventFooter getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private TransactionEventFooter(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventFooter_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventFooter_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter.class, org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code TransactionEventFooter}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooterOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventFooter_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventFooter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter.class, org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_TransactionEventFooter_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter build() {
        org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter result = new org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.TransactionEventFooter) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:TransactionEventFooter)
    }

    static {
      defaultInstance = new TransactionEventFooter(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:TransactionEventFooter)
  }

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

    // repeated .FlumeEventHeader headers = 1;
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader> 
        getHeadersList();
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader getHeaders(int index);
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    int getHeadersCount();
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    java.util.List<? extends org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder> 
        getHeadersOrBuilderList();
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder getHeadersOrBuilder(
        int index);

    // required bytes body = 2;
    /**
     * <code>required bytes body = 2;</code>
     */
    boolean hasBody();
    /**
     * <code>required bytes body = 2;</code>
     */
    com.google.protobuf.ByteString getBody();
  }
  /**
   * Protobuf type {@code FlumeEvent}
   */
  public static final class FlumeEvent extends
      com.google.protobuf.GeneratedMessage
      implements FlumeEventOrBuilder {
    // Use FlumeEvent.newBuilder() to construct.
    private FlumeEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private FlumeEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public FlumeEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private FlumeEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                headers_ = new java.util.ArrayList<org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader>();
                mutable_bitField0_ |= 0x00000001;
              }
              headers_.add(input.readMessage(org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.PARSER, extensionRegistry));
              break;
            }
            case 18: {
              bitField0_ |= 0x00000001;
              body_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          headers_ = java.util.Collections.unmodifiableList(headers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.class, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.Builder.class);
    }

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

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

    private int bitField0_;
    // repeated .FlumeEventHeader headers = 1;
    public static final int HEADERS_FIELD_NUMBER = 1;
    private java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader> headers_;
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    public java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader> getHeadersList() {
      return headers_;
    }
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    public java.util.List<? extends org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder> 
        getHeadersOrBuilderList() {
      return headers_;
    }
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    public int getHeadersCount() {
      return headers_.size();
    }
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader getHeaders(int index) {
      return headers_.get(index);
    }
    /**
     * <code>repeated .FlumeEventHeader headers = 1;</code>
     */
    public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder getHeadersOrBuilder(
        int index) {
      return headers_.get(index);
    }

    // required bytes body = 2;
    public static final int BODY_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString body_;
    /**
     * <code>required bytes body = 2;</code>
     */
    public boolean hasBody() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bytes body = 2;</code>
     */
    public com.google.protobuf.ByteString getBody() {
      return body_;
    }

    private void initFields() {
      headers_ = java.util.Collections.emptyList();
      body_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasBody()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getHeadersCount(); i++) {
        if (!getHeaders(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < headers_.size(); i++) {
        output.writeMessage(1, headers_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(2, body_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < headers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, headers_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, body_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code FlumeEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.class, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getHeadersFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (headersBuilder_ == null) {
          headers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          headersBuilder_.clear();
        }
        body_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEvent_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent build() {
        org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent result = new org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (headersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            headers_ = java.util.Collections.unmodifiableList(headers_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.headers_ = headers_;
        } else {
          result.headers_ = headersBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.body_ = body_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent.getDefaultInstance()) return this;
        if (headersBuilder_ == null) {
          if (!other.headers_.isEmpty()) {
            if (headers_.isEmpty()) {
              headers_ = other.headers_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureHeadersIsMutable();
              headers_.addAll(other.headers_);
            }
            onChanged();
          }
        } else {
          if (!other.headers_.isEmpty()) {
            if (headersBuilder_.isEmpty()) {
              headersBuilder_.dispose();
              headersBuilder_ = null;
              headers_ = other.headers_;
              bitField0_ = (bitField0_ & ~0x00000001);
              headersBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getHeadersFieldBuilder() : null;
            } else {
              headersBuilder_.addAllMessages(other.headers_);
            }
          }
        }
        if (other.hasBody()) {
          setBody(other.getBody());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasBody()) {
          
          return false;
        }
        for (int i = 0; i < getHeadersCount(); i++) {
          if (!getHeaders(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.FlumeEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .FlumeEventHeader headers = 1;
      private java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader> headers_ =
        java.util.Collections.emptyList();
      private void ensureHeadersIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          headers_ = new java.util.ArrayList<org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader>(headers_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder> headersBuilder_;

      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader> getHeadersList() {
        if (headersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(headers_);
        } else {
          return headersBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public int getHeadersCount() {
        if (headersBuilder_ == null) {
          return headers_.size();
        } else {
          return headersBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader getHeaders(int index) {
        if (headersBuilder_ == null) {
          return headers_.get(index);
        } else {
          return headersBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public Builder setHeaders(
          int index, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader value) {
        if (headersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeadersIsMutable();
          headers_.set(index, value);
          onChanged();
        } else {
          headersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public Builder setHeaders(
          int index, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder builderForValue) {
        if (headersBuilder_ == null) {
          ensureHeadersIsMutable();
          headers_.set(index, builderForValue.build());
          onChanged();
        } else {
          headersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public Builder addHeaders(org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader value) {
        if (headersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeadersIsMutable();
          headers_.add(value);
          onChanged();
        } else {
          headersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public Builder addHeaders(
          int index, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader value) {
        if (headersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeadersIsMutable();
          headers_.add(index, value);
          onChanged();
        } else {
          headersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public Builder addHeaders(
          org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder builderForValue) {
        if (headersBuilder_ == null) {
          ensureHeadersIsMutable();
          headers_.add(builderForValue.build());
          onChanged();
        } else {
          headersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public Builder addHeaders(
          int index, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder builderForValue) {
        if (headersBuilder_ == null) {
          ensureHeadersIsMutable();
          headers_.add(index, builderForValue.build());
          onChanged();
        } else {
          headersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public Builder addAllHeaders(
          java.lang.Iterable<? extends org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader> values) {
        if (headersBuilder_ == null) {
          ensureHeadersIsMutable();
          super.addAll(values, headers_);
          onChanged();
        } else {
          headersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public Builder clearHeaders() {
        if (headersBuilder_ == null) {
          headers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          headersBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public Builder removeHeaders(int index) {
        if (headersBuilder_ == null) {
          ensureHeadersIsMutable();
          headers_.remove(index);
          onChanged();
        } else {
          headersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder getHeadersBuilder(
          int index) {
        return getHeadersFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder getHeadersOrBuilder(
          int index) {
        if (headersBuilder_ == null) {
          return headers_.get(index);  } else {
          return headersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public java.util.List<? extends org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder> 
           getHeadersOrBuilderList() {
        if (headersBuilder_ != null) {
          return headersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(headers_);
        }
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder addHeadersBuilder() {
        return getHeadersFieldBuilder().addBuilder(
            org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.getDefaultInstance());
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder addHeadersBuilder(
          int index) {
        return getHeadersFieldBuilder().addBuilder(
            index, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.getDefaultInstance());
      }
      /**
       * <code>repeated .FlumeEventHeader headers = 1;</code>
       */
      public java.util.List<org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder> 
           getHeadersBuilderList() {
        return getHeadersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder> 
          getHeadersFieldBuilder() {
        if (headersBuilder_ == null) {
          headersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder>(
                  headers_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          headers_ = null;
        }
        return headersBuilder_;
      }

      // required bytes body = 2;
      private com.google.protobuf.ByteString body_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes body = 2;</code>
       */
      public boolean hasBody() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bytes body = 2;</code>
       */
      public com.google.protobuf.ByteString getBody() {
        return body_;
      }
      /**
       * <code>required bytes body = 2;</code>
       */
      public Builder setBody(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        body_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes body = 2;</code>
       */
      public Builder clearBody() {
        bitField0_ = (bitField0_ & ~0x00000002);
        body_ = getDefaultInstance().getBody();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:FlumeEvent)
    }

    static {
      defaultInstance = new FlumeEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:FlumeEvent)
  }

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

    // required string key = 1;
    /**
     * <code>required string key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     * <code>required string key = 1;</code>
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    // required string value = 2;
    /**
     * <code>required string value = 2;</code>
     */
    boolean hasValue();
    /**
     * <code>required string value = 2;</code>
     */
    java.lang.String getValue();
    /**
     * <code>required string value = 2;</code>
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code FlumeEventHeader}
   */
  public static final class FlumeEventHeader extends
      com.google.protobuf.GeneratedMessage
      implements FlumeEventHeaderOrBuilder {
    // Use FlumeEventHeader.newBuilder() to construct.
    private FlumeEventHeader(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private FlumeEventHeader(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public FlumeEventHeader getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private FlumeEventHeader(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              key_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              value_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEventHeader_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEventHeader_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.class, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder.class);
    }

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

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

    private int bitField0_;
    // required string key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private java.lang.Object key_;
    /**
     * <code>required string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      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()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string key = 1;</code>
     */
    public com.google.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required string value = 2;
    public static final int VALUE_FIELD_NUMBER = 2;
    private java.lang.Object value_;
    /**
     * <code>required string value = 2;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string value = 2;</code>
     */
    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>required string value = 2;</code>
     */
    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 void initFields() {
      key_ = "";
      value_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasValue()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getValueBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getValueBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code FlumeEventHeader}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeaderOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEventHeader_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEventHeader_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.class, org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.Builder.class);
      }

      // Construct using org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.internal_static_FlumeEventHeader_descriptor;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader getDefaultInstanceForType() {
        return org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.getDefaultInstance();
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader build() {
        org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader buildPartial() {
        org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader result = new org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader) {
          return mergeFrom((org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader other) {
        if (other == org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasKey()) {
          
          return false;
        }
        if (!hasValue()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.apache.flume.channel.file.proto.ProtosFactory.FlumeEventHeader) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string key = 1;
      private java.lang.Object key_ = "";
      /**
       * <code>required string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string key = 1;</code>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * <code>required string key = 1;</code>
       */
      public Builder setKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      // required string value = 2;
      private java.lang.Object value_ = "";
      /**
       * <code>required string value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          value_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string value = 2;</code>
       */
      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>required string value = 2;</code>
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * <code>required string value = 2;</code>
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:FlumeEventHeader)
    }

    static {
      defaultInstance = new FlumeEventHeader(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:FlumeEventHeader)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Checkpoint_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Checkpoint_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ActiveLog_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ActiveLog_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LogFileMetaData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LogFileMetaData_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LogFileEncryption_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LogFileEncryption_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_TransactionEventHeader_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_TransactionEventHeader_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Put_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Put_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Take_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Take_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Rollback_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Rollback_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Commit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Commit_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_TransactionEventFooter_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_TransactionEventFooter_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_FlumeEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_FlumeEvent_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_FlumeEventHeader_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_FlumeEventHeader_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\021filechannel.proto\"y\n\nCheckpoint\022\017\n\007ver" +
      "sion\030\001 \002(\017\022\024\n\014writeOrderID\030\002 \002(\020\022\021\n\tqueu" +
      "eSize\030\003 \002(\017\022\021\n\tqueueHead\030\004 \002(\017\022\036\n\nactive" +
      "Logs\030\005 \003(\0132\n.ActiveLog\"-\n\tActiveLog\022\021\n\tl" +
      "ogFileID\030\001 \002(\017\022\r\n\005count\030\002 \002(\017\"\341\001\n\017LogFil" +
      "eMetaData\022\017\n\007version\030\001 \002(\017\022\021\n\tlogFileID\030" +
      "\002 \002(\017\022\032\n\022checkpointPosition\030\003 \002(\020\022\036\n\026che" +
      "ckpointWriteOrderID\030\004 \002(\020\022&\n\nencryption\030" +
      "\005 \001(\0132\022.LogFileEncryption\022 \n\030backupCheck" +
      "pointPosition\030\006 \001(\020\022$\n\034backupCheckpointW",
      "riteOrderID\030\007 \001(\020\"Q\n\021LogFileEncryption\022\026" +
      "\n\016cipherProvider\030\001 \002(\t\022\020\n\010keyAlias\030\002 \002(\t" +
      "\022\022\n\nparameters\030\003 \001(\014\"S\n\026TransactionEvent" +
      "Header\022\014\n\004type\030\001 \002(\017\022\025\n\rtransactionID\030\002 " +
      "\002(\020\022\024\n\014writeOrderID\030\003 \002(\020\"3\n\003Put\022\032\n\005even" +
      "t\030\001 \002(\0132\013.FlumeEvent\022\020\n\010checksum\030\002 \001(\020\"&" +
      "\n\004Take\022\016\n\006fileID\030\001 \002(\017\022\016\n\006offset\030\002 \002(\017\"\n" +
      "\n\010Rollback\"\026\n\006Commit\022\014\n\004type\030\001 \002(\017\"\030\n\026Tr" +
      "ansactionEventFooter\">\n\nFlumeEvent\022\"\n\007he" +
      "aders\030\001 \003(\0132\021.FlumeEventHeader\022\014\n\004body\030\002",
      " \002(\014\".\n\020FlumeEventHeader\022\013\n\003key\030\001 \002(\t\022\r\n" +
      "\005value\030\002 \002(\tB4\n#org.apache.flume.channel" +
      ".file.protoB\rProtosFactory"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_Checkpoint_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_Checkpoint_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Checkpoint_descriptor,
              new java.lang.String[] { "Version", "WriteOrderID", "QueueSize", "QueueHead", "ActiveLogs", });
          internal_static_ActiveLog_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_ActiveLog_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ActiveLog_descriptor,
              new java.lang.String[] { "LogFileID", "Count", });
          internal_static_LogFileMetaData_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_LogFileMetaData_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LogFileMetaData_descriptor,
              new java.lang.String[] { "Version", "LogFileID", "CheckpointPosition", "CheckpointWriteOrderID", "Encryption", "BackupCheckpointPosition", "BackupCheckpointWriteOrderID", });
          internal_static_LogFileEncryption_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_LogFileEncryption_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LogFileEncryption_descriptor,
              new java.lang.String[] { "CipherProvider", "KeyAlias", "Parameters", });
          internal_static_TransactionEventHeader_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_TransactionEventHeader_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_TransactionEventHeader_descriptor,
              new java.lang.String[] { "Type", "TransactionID", "WriteOrderID", });
          internal_static_Put_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_Put_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Put_descriptor,
              new java.lang.String[] { "Event", "Checksum", });
          internal_static_Take_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_Take_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Take_descriptor,
              new java.lang.String[] { "FileID", "Offset", });
          internal_static_Rollback_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_Rollback_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Rollback_descriptor,
              new java.lang.String[] { });
          internal_static_Commit_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_Commit_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Commit_descriptor,
              new java.lang.String[] { "Type", });
          internal_static_TransactionEventFooter_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_TransactionEventFooter_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_TransactionEventFooter_descriptor,
              new java.lang.String[] { });
          internal_static_FlumeEvent_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_FlumeEvent_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_FlumeEvent_descriptor,
              new java.lang.String[] { "Headers", "Body", });
          internal_static_FlumeEventHeader_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_FlumeEventHeader_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_FlumeEventHeader_descriptor,
              new java.lang.String[] { "Key", "Value", });
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
