/*
 * Copyright 2012 The Netty Project
 *
 * The Netty Project 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: src/main/java/org/jboss/netty/example/localtime/LocalTimeProtocol.proto

package org.jboss.netty.example.localtime;

@SuppressWarnings("all")
public final class LocalTimeProtocol {
  private LocalTimeProtocol() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public enum Continent
      implements com.google.protobuf.ProtocolMessageEnum {
    AFRICA(0, 0),
    AMERICA(1, 1),
    ANTARCTICA(2, 2),
    ARCTIC(3, 3),
    ASIA(4, 4),
    ATLANTIC(5, 5),
    AUSTRALIA(6, 6),
    EUROPE(7, 7),
    INDIAN(8, 8),
    MIDEAST(9, 9),
    PACIFIC(10, 10),
    ;

    public static final int AFRICA_VALUE = 0;
    public static final int AMERICA_VALUE = 1;
    public static final int ANTARCTICA_VALUE = 2;
    public static final int ARCTIC_VALUE = 3;
    public static final int ASIA_VALUE = 4;
    public static final int ATLANTIC_VALUE = 5;
    public static final int AUSTRALIA_VALUE = 6;
    public static final int EUROPE_VALUE = 7;
    public static final int INDIAN_VALUE = 8;
    public static final int MIDEAST_VALUE = 9;
    public static final int PACIFIC_VALUE = 10;


    public final int getNumber() { return value; }

    public static Continent valueOf(int value) {
      switch (value) {
        case 0: return AFRICA;
        case 1: return AMERICA;
        case 2: return ANTARCTICA;
        case 3: return ARCTIC;
        case 4: return ASIA;
        case 5: return ATLANTIC;
        case 6: return AUSTRALIA;
        case 7: return EUROPE;
        case 8: return INDIAN;
        case 9: return MIDEAST;
        case 10: return PACIFIC;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.getDescriptor().getEnumTypes().get(0);
    }

    private static final Continent[] VALUES = {
      AFRICA, AMERICA, ANTARCTICA, ARCTIC, ASIA, ATLANTIC, AUSTRALIA, EUROPE, INDIAN, MIDEAST, PACIFIC,
    };

    public static Continent valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private Continent(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.jboss.netty.example.localtime.Continent)
  }

  public enum DayOfWeek
      implements com.google.protobuf.ProtocolMessageEnum {
    SUNDAY(0, 1),
    MONDAY(1, 2),
    TUESDAY(2, 3),
    WEDNESDAY(3, 4),
    THURSDAY(4, 5),
    FRIDAY(5, 6),
    SATURDAY(6, 7),
    ;

    public static final int SUNDAY_VALUE = 1;
    public static final int MONDAY_VALUE = 2;
    public static final int TUESDAY_VALUE = 3;
    public static final int WEDNESDAY_VALUE = 4;
    public static final int THURSDAY_VALUE = 5;
    public static final int FRIDAY_VALUE = 6;
    public static final int SATURDAY_VALUE = 7;


    public final int getNumber() { return value; }

    public static DayOfWeek valueOf(int value) {
      switch (value) {
        case 1: return SUNDAY;
        case 2: return MONDAY;
        case 3: return TUESDAY;
        case 4: return WEDNESDAY;
        case 5: return THURSDAY;
        case 6: return FRIDAY;
        case 7: return SATURDAY;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.getDescriptor().getEnumTypes().get(1);
    }

    private static final DayOfWeek[] VALUES = {
      SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY,
    };

    public static DayOfWeek valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DayOfWeek(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.jboss.netty.example.localtime.DayOfWeek)
  }

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

    // required .org.jboss.netty.example.localtime.Continent continent = 1;
    boolean hasContinent();
    org.jboss.netty.example.localtime.LocalTimeProtocol.Continent getContinent();

    // required string city = 2;
    boolean hasCity();
    String getCity();
  }
  public static final class Location extends
      com.google.protobuf.GeneratedMessage
      implements LocationOrBuilder {
    // Use Location.newBuilder() to construct.
    private Location(Builder builder) {
      super(builder);
    }
    private Location(boolean noInit) {}

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

    public Location getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_Location_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_Location_fieldAccessorTable;
    }

    private int bitField0_;
    // required .org.jboss.netty.example.localtime.Continent continent = 1;
    public static final int CONTINENT_FIELD_NUMBER = 1;
    private org.jboss.netty.example.localtime.LocalTimeProtocol.Continent continent_;
    public boolean hasContinent() {
      return (bitField0_ & 0x00000001) == 0x00000001;
    }
    public org.jboss.netty.example.localtime.LocalTimeProtocol.Continent getContinent() {
      return continent_;
    }

    // required string city = 2;
    public static final int CITY_FIELD_NUMBER = 2;
    private java.lang.Object city_;
    public boolean hasCity() {
      return (bitField0_ & 0x00000002) == 0x00000002;
    }
    public String getCity() {
      java.lang.Object ref = city_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          city_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getCityBytes() {
      java.lang.Object ref = city_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        city_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA;
      city_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) {
        return isInitialized == 1;
    }

      if (!hasContinent()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCity()) {
        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.writeEnum(1, continent_.getNumber());
      }
      if ((bitField0_ & 0x00000002) == 0x00000002) {
        output.writeBytes(2, getCityBytes());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if ((bitField0_ & 0x00000001) == 0x00000001) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, continent_.getNumber());
      }
      if ((bitField0_ & 0x00000002) == 0x00000002) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getCityBytes());
      }
      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.jboss.netty.example.localtime.LocalTimeProtocol.Location parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Location parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Location parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Location parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Location parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Location parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Location parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Location parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Location parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Location parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jboss.netty.example.localtime.LocalTimeProtocol.Location prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_Location_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_Location_fieldAccessorTable;
      }

      // Construct using org.jboss.netty.example.localtime.LocalTimeProtocol.Location.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA;
        bitField0_ = bitField0_ & ~0x00000001;
        city_ = "";
        bitField0_ = bitField0_ & ~0x00000002;
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.Location.getDescriptor();
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.Location getDefaultInstanceForType() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.Location.getDefaultInstance();
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.Location build() {
        org.jboss.netty.example.localtime.LocalTimeProtocol.Location result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      private org.jboss.netty.example.localtime.LocalTimeProtocol.Location buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        org.jboss.netty.example.localtime.LocalTimeProtocol.Location result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.Location buildPartial() {
        org.jboss.netty.example.localtime.LocalTimeProtocol.Location result = new org.jboss.netty.example.localtime.LocalTimeProtocol.Location(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if ((from_bitField0_ & 0x00000001) == 0x00000001) {
          to_bitField0_ |= 0x00000001;
        }
        result.continent_ = continent_;
        if ((from_bitField0_ & 0x00000002) == 0x00000002) {
          to_bitField0_ |= 0x00000002;
        }
        result.city_ = city_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jboss.netty.example.localtime.LocalTimeProtocol.Location) {
          return mergeFrom((org.jboss.netty.example.localtime.LocalTimeProtocol.Location)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.Location other) {
        if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.Location.getDefaultInstance()) {
            return this;
        }
        if (other.hasContinent()) {
          setContinent(other.getContinent());
        }
        if (other.hasCity()) {
          setCity(other.getCity());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasContinent()) {

          return false;
        }
        if (!hasCity()) {

          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              org.jboss.netty.example.localtime.LocalTimeProtocol.Continent value = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                continent_ = value;
              }
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              city_ = input.readBytes();
              break;
            }
          }
        }
      }

      private int bitField0_;

      // required .org.jboss.netty.example.localtime.Continent continent = 1;
      private org.jboss.netty.example.localtime.LocalTimeProtocol.Continent continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA;
      public boolean hasContinent() {
        return (bitField0_ & 0x00000001) == 0x00000001;
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.Continent getContinent() {
        return continent_;
      }
      public Builder setContinent(org.jboss.netty.example.localtime.LocalTimeProtocol.Continent value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        continent_ = value;
        onChanged();
        return this;
      }
      public Builder clearContinent() {
        bitField0_ = bitField0_ & ~0x00000001;
        continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA;
        onChanged();
        return this;
      }

      // required string city = 2;
      private java.lang.Object city_ = "";
      public boolean hasCity() {
        return (bitField0_ & 0x00000002) == 0x00000002;
      }
      public String getCity() {
        java.lang.Object ref = city_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          city_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setCity(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        city_ = value;
        onChanged();
        return this;
      }
      public Builder clearCity() {
        bitField0_ = bitField0_ & ~0x00000002;
        city_ = getDefaultInstance().getCity();
        onChanged();
        return this;
      }
      void setCity(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000002;
        city_ = value;
        onChanged();
      }

      // @@protoc_insertion_point(builder_scope:org.jboss.netty.example.localtime.Location)
    }

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

    // @@protoc_insertion_point(class_scope:org.jboss.netty.example.localtime.Location)
  }

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

    // repeated .org.jboss.netty.example.localtime.Location location = 1;
    java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.Location>
        getLocationList();
    org.jboss.netty.example.localtime.LocalTimeProtocol.Location getLocation(int index);
    int getLocationCount();
    java.util.List<? extends org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder>
        getLocationOrBuilderList();
    org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder getLocationOrBuilder(
        int index);
  }
  public static final class Locations extends
      com.google.protobuf.GeneratedMessage
      implements LocationsOrBuilder {
    // Use Locations.newBuilder() to construct.
    private Locations(Builder builder) {
      super(builder);
    }
    private Locations(boolean noInit) {}

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

    public Locations getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_Locations_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_Locations_fieldAccessorTable;
    }

    // repeated .org.jboss.netty.example.localtime.Location location = 1;
    public static final int LOCATION_FIELD_NUMBER = 1;
    private java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.Location> location_;
    public java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.Location> getLocationList() {
      return location_;
    }
    public java.util.List<? extends org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder>
        getLocationOrBuilderList() {
      return location_;
    }
    public int getLocationCount() {
      return location_.size();
    }
    public org.jboss.netty.example.localtime.LocalTimeProtocol.Location getLocation(int index) {
      return location_.get(index);
    }
    public org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder getLocationOrBuilder(
        int index) {
      return location_.get(index);
    }

    private void initFields() {
      location_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) {
        return isInitialized == 1;
    }

      for (int i = 0; i < getLocationCount(); i++) {
        if (!getLocation(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 < location_.size(); i++) {
        output.writeMessage(1, location_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < location_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, location_.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.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.Locations parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jboss.netty.example.localtime.LocalTimeProtocol.Locations prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jboss.netty.example.localtime.LocalTimeProtocol.LocationsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_Locations_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_Locations_fieldAccessorTable;
      }

      // Construct using org.jboss.netty.example.localtime.LocalTimeProtocol.Locations.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (locationBuilder_ == null) {
          location_ = java.util.Collections.emptyList();
          bitField0_ = bitField0_ & ~0x00000001;
        } else {
          locationBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.Locations.getDescriptor();
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.Locations getDefaultInstanceForType() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.Locations.getDefaultInstance();
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.Locations build() {
        org.jboss.netty.example.localtime.LocalTimeProtocol.Locations result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      private org.jboss.netty.example.localtime.LocalTimeProtocol.Locations buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        org.jboss.netty.example.localtime.LocalTimeProtocol.Locations result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.Locations buildPartial() {
        org.jboss.netty.example.localtime.LocalTimeProtocol.Locations result = new org.jboss.netty.example.localtime.LocalTimeProtocol.Locations(this);
        int from_bitField0_ = bitField0_;
        if (locationBuilder_ == null) {
          if ((bitField0_ & 0x00000001) == 0x00000001) {
            location_ = java.util.Collections.unmodifiableList(location_);
            bitField0_ = bitField0_ & ~0x00000001;
          }
          result.location_ = location_;
        } else {
          result.location_ = locationBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jboss.netty.example.localtime.LocalTimeProtocol.Locations) {
          return mergeFrom((org.jboss.netty.example.localtime.LocalTimeProtocol.Locations)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.Locations other) {
        if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.Locations.getDefaultInstance()) {
            return this;
        }
        if (locationBuilder_ == null) {
          if (!other.location_.isEmpty()) {
            if (location_.isEmpty()) {
              location_ = other.location_;
              bitField0_ = bitField0_ & ~0x00000001;
            } else {
              ensureLocationIsMutable();
              location_.addAll(other.location_);
            }
            onChanged();
          }
        } else {
          if (!other.location_.isEmpty()) {
            if (locationBuilder_.isEmpty()) {
              locationBuilder_.dispose();
              locationBuilder_ = null;
              location_ = other.location_;
              bitField0_ = bitField0_ & ~0x00000001;
              locationBuilder_ =
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLocationFieldBuilder() : null;
            } else {
              locationBuilder_.addAllMessages(other.location_);
            }
          }
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getLocationCount(); i++) {
          if (!getLocation(i).isInitialized()) {

            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 10: {
              org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder subBuilder = org.jboss.netty.example.localtime.LocalTimeProtocol.Location.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addLocation(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      private int bitField0_;

      // repeated .org.jboss.netty.example.localtime.Location location = 1;
      private java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.Location> location_ =
        java.util.Collections.emptyList();
      private void ensureLocationIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          location_ = new java.util.ArrayList<org.jboss.netty.example.localtime.LocalTimeProtocol.Location>(location_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jboss.netty.example.localtime.LocalTimeProtocol.Location, org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder> locationBuilder_;

      public java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.Location> getLocationList() {
        if (locationBuilder_ == null) {
          return java.util.Collections.unmodifiableList(location_);
        } else {
          return locationBuilder_.getMessageList();
        }
      }
      public int getLocationCount() {
        if (locationBuilder_ == null) {
          return location_.size();
        } else {
          return locationBuilder_.getCount();
        }
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.Location getLocation(int index) {
        if (locationBuilder_ == null) {
          return location_.get(index);
        } else {
          return locationBuilder_.getMessage(index);
        }
      }
      public Builder setLocation(
          int index, org.jboss.netty.example.localtime.LocalTimeProtocol.Location value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLocationIsMutable();
          location_.set(index, value);
          onChanged();
        } else {
          locationBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setLocation(
          int index, org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder builderForValue) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.set(index, builderForValue.build());
          onChanged();
        } else {
          locationBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addLocation(org.jboss.netty.example.localtime.LocalTimeProtocol.Location value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLocationIsMutable();
          location_.add(value);
          onChanged();
        } else {
          locationBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addLocation(
          int index, org.jboss.netty.example.localtime.LocalTimeProtocol.Location value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLocationIsMutable();
          location_.add(index, value);
          onChanged();
        } else {
          locationBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addLocation(
          org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder builderForValue) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.add(builderForValue.build());
          onChanged();
        } else {
          locationBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addLocation(
          int index, org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder builderForValue) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.add(index, builderForValue.build());
          onChanged();
        } else {
          locationBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllLocation(
          java.lang.Iterable<? extends org.jboss.netty.example.localtime.LocalTimeProtocol.Location> values) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          super.addAll(values, location_);
          onChanged();
        } else {
          locationBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearLocation() {
        if (locationBuilder_ == null) {
          location_ = java.util.Collections.emptyList();
          bitField0_ = bitField0_ & ~0x00000001;
          onChanged();
        } else {
          locationBuilder_.clear();
        }
        return this;
      }
      public Builder removeLocation(int index) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.remove(index);
          onChanged();
        } else {
          locationBuilder_.remove(index);
        }
        return this;
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder getLocationBuilder(
          int index) {
        return getLocationFieldBuilder().getBuilder(index);
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder getLocationOrBuilder(
          int index) {
        if (locationBuilder_ == null) {
          return location_.get(index);  } else {
          return locationBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder>
           getLocationOrBuilderList() {
        if (locationBuilder_ != null) {
          return locationBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(location_);
        }
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder addLocationBuilder() {
        return getLocationFieldBuilder().addBuilder(
            org.jboss.netty.example.localtime.LocalTimeProtocol.Location.getDefaultInstance());
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder addLocationBuilder(
          int index) {
        return getLocationFieldBuilder().addBuilder(
            index, org.jboss.netty.example.localtime.LocalTimeProtocol.Location.getDefaultInstance());
      }
      public java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder>
           getLocationBuilderList() {
        return getLocationFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jboss.netty.example.localtime.LocalTimeProtocol.Location, org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder>
          getLocationFieldBuilder() {
        if (locationBuilder_ == null) {
          locationBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jboss.netty.example.localtime.LocalTimeProtocol.Location, org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder>(
                  location_,
                  (bitField0_ & 0x00000001) == 0x00000001,
                  getParentForChildren(),
                  isClean());
          location_ = null;
        }
        return locationBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:org.jboss.netty.example.localtime.Locations)
    }

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

    // @@protoc_insertion_point(class_scope:org.jboss.netty.example.localtime.Locations)
  }

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

    // required uint32 year = 1;
    boolean hasYear();
    int getYear();

    // required uint32 month = 2;
    boolean hasMonth();
    int getMonth();

    // required uint32 dayOfMonth = 4;
    boolean hasDayOfMonth();
    int getDayOfMonth();

    // required .org.jboss.netty.example.localtime.DayOfWeek dayOfWeek = 5;
    boolean hasDayOfWeek();
    org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek getDayOfWeek();

    // required uint32 hour = 6;
    boolean hasHour();
    int getHour();

    // required uint32 minute = 7;
    boolean hasMinute();
    int getMinute();

    // required uint32 second = 8;
    boolean hasSecond();
    int getSecond();
  }
  public static final class LocalTime extends
      com.google.protobuf.GeneratedMessage
      implements LocalTimeOrBuilder {
    // Use LocalTime.newBuilder() to construct.
    private LocalTime(Builder builder) {
      super(builder);
    }
    private LocalTime(boolean noInit) {}

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

    public LocalTime getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_LocalTime_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_LocalTime_fieldAccessorTable;
    }

    private int bitField0_;
    // required uint32 year = 1;
    public static final int YEAR_FIELD_NUMBER = 1;
    private int year_;
    public boolean hasYear() {
      return (bitField0_ & 0x00000001) == 0x00000001;
    }
    public int getYear() {
      return year_;
    }

    // required uint32 month = 2;
    public static final int MONTH_FIELD_NUMBER = 2;
    private int month_;
    public boolean hasMonth() {
      return (bitField0_ & 0x00000002) == 0x00000002;
    }
    public int getMonth() {
      return month_;
    }

    // required uint32 dayOfMonth = 4;
    public static final int DAYOFMONTH_FIELD_NUMBER = 4;
    private int dayOfMonth_;
    public boolean hasDayOfMonth() {
      return (bitField0_ & 0x00000004) == 0x00000004;
    }
    public int getDayOfMonth() {
      return dayOfMonth_;
    }

    // required .org.jboss.netty.example.localtime.DayOfWeek dayOfWeek = 5;
    public static final int DAYOFWEEK_FIELD_NUMBER = 5;
    private org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek dayOfWeek_;
    public boolean hasDayOfWeek() {
      return (bitField0_ & 0x00000008) == 0x00000008;
    }
    public org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek getDayOfWeek() {
      return dayOfWeek_;
    }

    // required uint32 hour = 6;
    public static final int HOUR_FIELD_NUMBER = 6;
    private int hour_;
    public boolean hasHour() {
      return (bitField0_ & 0x00000010) == 0x00000010;
    }
    public int getHour() {
      return hour_;
    }

    // required uint32 minute = 7;
    public static final int MINUTE_FIELD_NUMBER = 7;
    private int minute_;
    public boolean hasMinute() {
      return (bitField0_ & 0x00000020) == 0x00000020;
    }
    public int getMinute() {
      return minute_;
    }

    // required uint32 second = 8;
    public static final int SECOND_FIELD_NUMBER = 8;
    private int second_;
    public boolean hasSecond() {
      return (bitField0_ & 0x00000040) == 0x00000040;
    }
    public int getSecond() {
      return second_;
    }

    private void initFields() {
      year_ = 0;
      month_ = 0;
      dayOfMonth_ = 0;
      dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY;
      hour_ = 0;
      minute_ = 0;
      second_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) {
        return isInitialized == 1;
    }

      if (!hasYear()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMonth()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDayOfMonth()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDayOfWeek()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHour()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMinute()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSecond()) {
        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.writeUInt32(1, year_);
      }
      if ((bitField0_ & 0x00000002) == 0x00000002) {
        output.writeUInt32(2, month_);
      }
      if ((bitField0_ & 0x00000004) == 0x00000004) {
        output.writeUInt32(4, dayOfMonth_);
      }
      if ((bitField0_ & 0x00000008) == 0x00000008) {
        output.writeEnum(5, dayOfWeek_.getNumber());
      }
      if ((bitField0_ & 0x00000010) == 0x00000010) {
        output.writeUInt32(6, hour_);
      }
      if ((bitField0_ & 0x00000020) == 0x00000020) {
        output.writeUInt32(7, minute_);
      }
      if ((bitField0_ & 0x00000040) == 0x00000040) {
        output.writeUInt32(8, second_);
      }
      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
          .computeUInt32Size(1, year_);
      }
      if ((bitField0_ & 0x00000002) == 0x00000002) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, month_);
      }
      if ((bitField0_ & 0x00000004) == 0x00000004) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, dayOfMonth_);
      }
      if ((bitField0_ & 0x00000008) == 0x00000008) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, dayOfWeek_.getNumber());
      }
      if ((bitField0_ & 0x00000010) == 0x00000010) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, hour_);
      }
      if ((bitField0_ & 0x00000020) == 0x00000020) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, minute_);
      }
      if ((bitField0_ & 0x00000040) == 0x00000040) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, second_);
      }
      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.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_LocalTime_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_LocalTime_fieldAccessorTable;
      }

      // Construct using org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        year_ = 0;
        bitField0_ = bitField0_ & ~0x00000001;
        month_ = 0;
        bitField0_ = bitField0_ & ~0x00000002;
        dayOfMonth_ = 0;
        bitField0_ = bitField0_ & ~0x00000004;
        dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY;
        bitField0_ = bitField0_ & ~0x00000008;
        hour_ = 0;
        bitField0_ = bitField0_ & ~0x00000010;
        minute_ = 0;
        bitField0_ = bitField0_ & ~0x00000020;
        second_ = 0;
        bitField0_ = bitField0_ & ~0x00000040;
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.getDescriptor();
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime getDefaultInstanceForType() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.getDefaultInstance();
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime build() {
        org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      private org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime buildPartial() {
        org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime result = new org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if ((from_bitField0_ & 0x00000001) == 0x00000001) {
          to_bitField0_ |= 0x00000001;
        }
        result.year_ = year_;
        if ((from_bitField0_ & 0x00000002) == 0x00000002) {
          to_bitField0_ |= 0x00000002;
        }
        result.month_ = month_;
        if ((from_bitField0_ & 0x00000004) == 0x00000004) {
          to_bitField0_ |= 0x00000004;
        }
        result.dayOfMonth_ = dayOfMonth_;
        if ((from_bitField0_ & 0x00000008) == 0x00000008) {
          to_bitField0_ |= 0x00000008;
        }
        result.dayOfWeek_ = dayOfWeek_;
        if ((from_bitField0_ & 0x00000010) == 0x00000010) {
          to_bitField0_ |= 0x00000010;
        }
        result.hour_ = hour_;
        if ((from_bitField0_ & 0x00000020) == 0x00000020) {
          to_bitField0_ |= 0x00000020;
        }
        result.minute_ = minute_;
        if ((from_bitField0_ & 0x00000040) == 0x00000040) {
          to_bitField0_ |= 0x00000040;
        }
        result.second_ = second_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime) {
          return mergeFrom((org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime other) {
        if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.getDefaultInstance()) {
            return this;
        }
        if (other.hasYear()) {
          setYear(other.getYear());
        }
        if (other.hasMonth()) {
          setMonth(other.getMonth());
        }
        if (other.hasDayOfMonth()) {
          setDayOfMonth(other.getDayOfMonth());
        }
        if (other.hasDayOfWeek()) {
          setDayOfWeek(other.getDayOfWeek());
        }
        if (other.hasHour()) {
          setHour(other.getHour());
        }
        if (other.hasMinute()) {
          setMinute(other.getMinute());
        }
        if (other.hasSecond()) {
          setSecond(other.getSecond());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasYear()) {

          return false;
        }
        if (!hasMonth()) {

          return false;
        }
        if (!hasDayOfMonth()) {

          return false;
        }
        if (!hasDayOfWeek()) {

          return false;
        }
        if (!hasHour()) {

          return false;
        }
        if (!hasMinute()) {

          return false;
        }
        if (!hasSecond()) {

          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              year_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              month_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              dayOfMonth_ = input.readUInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek value = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(5, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                dayOfWeek_ = value;
              }
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              hour_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              minute_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000040;
              second_ = input.readUInt32();
              break;
            }
          }
        }
      }

      private int bitField0_;

      // required uint32 year = 1;
      private int year_ ;
      public boolean hasYear() {
        return (bitField0_ & 0x00000001) == 0x00000001;
      }
      public int getYear() {
        return year_;
      }
      public Builder setYear(int value) {
        bitField0_ |= 0x00000001;
        year_ = value;
        onChanged();
        return this;
      }
      public Builder clearYear() {
        bitField0_ = bitField0_ & ~0x00000001;
        year_ = 0;
        onChanged();
        return this;
      }

      // required uint32 month = 2;
      private int month_ ;
      public boolean hasMonth() {
        return (bitField0_ & 0x00000002) == 0x00000002;
      }
      public int getMonth() {
        return month_;
      }
      public Builder setMonth(int value) {
        bitField0_ |= 0x00000002;
        month_ = value;
        onChanged();
        return this;
      }
      public Builder clearMonth() {
        bitField0_ = bitField0_ & ~0x00000002;
        month_ = 0;
        onChanged();
        return this;
      }

      // required uint32 dayOfMonth = 4;
      private int dayOfMonth_ ;
      public boolean hasDayOfMonth() {
        return (bitField0_ & 0x00000004) == 0x00000004;
      }
      public int getDayOfMonth() {
        return dayOfMonth_;
      }
      public Builder setDayOfMonth(int value) {
        bitField0_ |= 0x00000004;
        dayOfMonth_ = value;
        onChanged();
        return this;
      }
      public Builder clearDayOfMonth() {
        bitField0_ = bitField0_ & ~0x00000004;
        dayOfMonth_ = 0;
        onChanged();
        return this;
      }

      // required .org.jboss.netty.example.localtime.DayOfWeek dayOfWeek = 5;
      private org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY;
      public boolean hasDayOfWeek() {
        return (bitField0_ & 0x00000008) == 0x00000008;
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek getDayOfWeek() {
        return dayOfWeek_;
      }
      public Builder setDayOfWeek(org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        dayOfWeek_ = value;
        onChanged();
        return this;
      }
      public Builder clearDayOfWeek() {
        bitField0_ = bitField0_ & ~0x00000008;
        dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY;
        onChanged();
        return this;
      }

      // required uint32 hour = 6;
      private int hour_ ;
      public boolean hasHour() {
        return (bitField0_ & 0x00000010) == 0x00000010;
      }
      public int getHour() {
        return hour_;
      }
      public Builder setHour(int value) {
        bitField0_ |= 0x00000010;
        hour_ = value;
        onChanged();
        return this;
      }
      public Builder clearHour() {
        bitField0_ = bitField0_ & ~0x00000010;
        hour_ = 0;
        onChanged();
        return this;
      }

      // required uint32 minute = 7;
      private int minute_ ;
      public boolean hasMinute() {
        return (bitField0_ & 0x00000020) == 0x00000020;
      }
      public int getMinute() {
        return minute_;
      }
      public Builder setMinute(int value) {
        bitField0_ |= 0x00000020;
        minute_ = value;
        onChanged();
        return this;
      }
      public Builder clearMinute() {
        bitField0_ = bitField0_ & ~0x00000020;
        minute_ = 0;
        onChanged();
        return this;
      }

      // required uint32 second = 8;
      private int second_ ;
      public boolean hasSecond() {
        return (bitField0_ & 0x00000040) == 0x00000040;
      }
      public int getSecond() {
        return second_;
      }
      public Builder setSecond(int value) {
        bitField0_ |= 0x00000040;
        second_ = value;
        onChanged();
        return this;
      }
      public Builder clearSecond() {
        bitField0_ = bitField0_ & ~0x00000040;
        second_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jboss.netty.example.localtime.LocalTime)
    }

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

    // @@protoc_insertion_point(class_scope:org.jboss.netty.example.localtime.LocalTime)
  }

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

    // repeated .org.jboss.netty.example.localtime.LocalTime localTime = 1;
    java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime>
        getLocalTimeList();
    org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime getLocalTime(int index);
    int getLocalTimeCount();
    java.util.List<? extends org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder>
        getLocalTimeOrBuilderList();
    org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder getLocalTimeOrBuilder(
        int index);
  }
  public static final class LocalTimes extends
      com.google.protobuf.GeneratedMessage
      implements LocalTimesOrBuilder {
    // Use LocalTimes.newBuilder() to construct.
    private LocalTimes(Builder builder) {
      super(builder);
    }
    private LocalTimes(boolean noInit) {}

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

    public LocalTimes getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_LocalTimes_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_LocalTimes_fieldAccessorTable;
    }

    // repeated .org.jboss.netty.example.localtime.LocalTime localTime = 1;
    public static final int LOCALTIME_FIELD_NUMBER = 1;
    private java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime> localTime_;
    public java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime> getLocalTimeList() {
      return localTime_;
    }
    public java.util.List<? extends org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder>
        getLocalTimeOrBuilderList() {
      return localTime_;
    }
    public int getLocalTimeCount() {
      return localTime_.size();
    }
    public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime getLocalTime(int index) {
      return localTime_.get(index);
    }
    public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder getLocalTimeOrBuilder(
        int index) {
      return localTime_.get(index);
    }

    private void initFields() {
      localTime_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) {
        return isInitialized == 1;
    }

      for (int i = 0; i < getLocalTimeCount(); i++) {
        if (!getLocalTime(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 < localTime_.size(); i++) {
        output.writeMessage(1, localTime_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < localTime_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, localTime_.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.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_LocalTimes_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.internal_static_org_jboss_netty_example_localtime_LocalTimes_fieldAccessorTable;
      }

      // Construct using org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        if (localTimeBuilder_ == null) {
          localTime_ = java.util.Collections.emptyList();
          bitField0_ = bitField0_ & ~0x00000001;
        } else {
          localTimeBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes.getDescriptor();
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes getDefaultInstanceForType() {
        return org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes.getDefaultInstance();
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes build() {
        org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      private org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }

      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes buildPartial() {
        org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes result = new org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes(this);
        int from_bitField0_ = bitField0_;
        if (localTimeBuilder_ == null) {
          if ((bitField0_ & 0x00000001) == 0x00000001) {
            localTime_ = java.util.Collections.unmodifiableList(localTime_);
            bitField0_ = bitField0_ & ~0x00000001;
          }
          result.localTime_ = localTime_;
        } else {
          result.localTime_ = localTimeBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes) {
          return mergeFrom((org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes other) {
        if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes.getDefaultInstance()) {
            return this;
        }
        if (localTimeBuilder_ == null) {
          if (!other.localTime_.isEmpty()) {
            if (localTime_.isEmpty()) {
              localTime_ = other.localTime_;
              bitField0_ = bitField0_ & ~0x00000001;
            } else {
              ensureLocalTimeIsMutable();
              localTime_.addAll(other.localTime_);
            }
            onChanged();
          }
        } else {
          if (!other.localTime_.isEmpty()) {
            if (localTimeBuilder_.isEmpty()) {
              localTimeBuilder_.dispose();
              localTimeBuilder_ = null;
              localTime_ = other.localTime_;
              bitField0_ = bitField0_ & ~0x00000001;
              localTimeBuilder_ =
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLocalTimeFieldBuilder() : null;
            } else {
              localTimeBuilder_.addAllMessages(other.localTime_);
            }
          }
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getLocalTimeCount(); i++) {
          if (!getLocalTime(i).isInitialized()) {

            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 10: {
              org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder subBuilder = org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addLocalTime(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      private int bitField0_;

      // repeated .org.jboss.netty.example.localtime.LocalTime localTime = 1;
      private java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime> localTime_ =
        java.util.Collections.emptyList();
      private void ensureLocalTimeIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          localTime_ = new java.util.ArrayList<org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime>(localTime_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder> localTimeBuilder_;

      public java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime> getLocalTimeList() {
        if (localTimeBuilder_ == null) {
          return java.util.Collections.unmodifiableList(localTime_);
        } else {
          return localTimeBuilder_.getMessageList();
        }
      }
      public int getLocalTimeCount() {
        if (localTimeBuilder_ == null) {
          return localTime_.size();
        } else {
          return localTimeBuilder_.getCount();
        }
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime getLocalTime(int index) {
        if (localTimeBuilder_ == null) {
          return localTime_.get(index);
        } else {
          return localTimeBuilder_.getMessage(index);
        }
      }
      public Builder setLocalTime(
          int index, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime value) {
        if (localTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLocalTimeIsMutable();
          localTime_.set(index, value);
          onChanged();
        } else {
          localTimeBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setLocalTime(
          int index, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder builderForValue) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          localTime_.set(index, builderForValue.build());
          onChanged();
        } else {
          localTimeBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addLocalTime(org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime value) {
        if (localTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLocalTimeIsMutable();
          localTime_.add(value);
          onChanged();
        } else {
          localTimeBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addLocalTime(
          int index, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime value) {
        if (localTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLocalTimeIsMutable();
          localTime_.add(index, value);
          onChanged();
        } else {
          localTimeBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addLocalTime(
          org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder builderForValue) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          localTime_.add(builderForValue.build());
          onChanged();
        } else {
          localTimeBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addLocalTime(
          int index, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder builderForValue) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          localTime_.add(index, builderForValue.build());
          onChanged();
        } else {
          localTimeBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllLocalTime(
          java.lang.Iterable<? extends org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime> values) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          super.addAll(values, localTime_);
          onChanged();
        } else {
          localTimeBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearLocalTime() {
        if (localTimeBuilder_ == null) {
          localTime_ = java.util.Collections.emptyList();
          bitField0_ = bitField0_ & ~0x00000001;
          onChanged();
        } else {
          localTimeBuilder_.clear();
        }
        return this;
      }
      public Builder removeLocalTime(int index) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          localTime_.remove(index);
          onChanged();
        } else {
          localTimeBuilder_.remove(index);
        }
        return this;
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder getLocalTimeBuilder(
          int index) {
        return getLocalTimeFieldBuilder().getBuilder(index);
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder getLocalTimeOrBuilder(
          int index) {
        if (localTimeBuilder_ == null) {
          return localTime_.get(index);  } else {
          return localTimeBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder>
           getLocalTimeOrBuilderList() {
        if (localTimeBuilder_ != null) {
          return localTimeBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(localTime_);
        }
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder addLocalTimeBuilder() {
        return getLocalTimeFieldBuilder().addBuilder(
            org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.getDefaultInstance());
      }
      public org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder addLocalTimeBuilder(
          int index) {
        return getLocalTimeFieldBuilder().addBuilder(
            index, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.getDefaultInstance());
      }
      public java.util.List<org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder>
           getLocalTimeBuilderList() {
        return getLocalTimeFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder>
          getLocalTimeFieldBuilder() {
        if (localTimeBuilder_ == null) {
          localTimeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder>(
                  localTime_,
                  (bitField0_ & 0x00000001) == 0x00000001,
                  getParentForChildren(),
                  isClean());
          localTime_ = null;
        }
        return localTimeBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:org.jboss.netty.example.localtime.LocalTimes)
    }

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

    // @@protoc_insertion_point(class_scope:org.jboss.netty.example.localtime.LocalTimes)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jboss_netty_example_localtime_Location_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jboss_netty_example_localtime_Location_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jboss_netty_example_localtime_Locations_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jboss_netty_example_localtime_Locations_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jboss_netty_example_localtime_LocalTime_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jboss_netty_example_localtime_LocalTime_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_org_jboss_netty_example_localtime_LocalTimes_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_org_jboss_netty_example_localtime_LocalTimes_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\nGsrc/main/java/org/jboss/netty/example/" +
      "localtime/LocalTimeProtocol.proto\022!org.j" +
      "boss.netty.example.localtime\"Y\n\010Location" +
      "\022?\n\tcontinent\030\001 \002(\0162,.org.jboss.netty.ex" +
      "ample.localtime.Continent\022\014\n\004city\030\002 \002(\t\"" +
      "J\n\tLocations\022=\n\010location\030\001 \003(\0132+.org.jbo" +
      "ss.netty.example.localtime.Location\"\253\001\n\t" +
      "LocalTime\022\014\n\004year\030\001 \002(\r\022\r\n\005month\030\002 \002(\r\022\022" +
      "\n\ndayOfMonth\030\004 \002(\r\022?\n\tdayOfWeek\030\005 \002(\0162,." +
      "org.jboss.netty.example.localtime.DayOfW",
      "eek\022\014\n\004hour\030\006 \002(\r\022\016\n\006minute\030\007 \002(\r\022\016\n\006sec" +
      "ond\030\010 \002(\r\"M\n\nLocalTimes\022?\n\tlocalTime\030\001 \003" +
      "(\0132,.org.jboss.netty.example.localtime.L" +
      "ocalTime*\231\001\n\tContinent\022\n\n\006AFRICA\020\000\022\013\n\007AM" +
      "ERICA\020\001\022\016\n\nANTARCTICA\020\002\022\n\n\006ARCTIC\020\003\022\010\n\004A" +
      "SIA\020\004\022\014\n\010ATLANTIC\020\005\022\r\n\tAUSTRALIA\020\006\022\n\n\006EU" +
      "ROPE\020\007\022\n\n\006INDIAN\020\010\022\013\n\007MIDEAST\020\t\022\013\n\007PACIF" +
      "IC\020\n*g\n\tDayOfWeek\022\n\n\006SUNDAY\020\001\022\n\n\006MONDAY\020" +
      "\002\022\013\n\007TUESDAY\020\003\022\r\n\tWEDNESDAY\020\004\022\014\n\010THURSDA" +
      "Y\020\005\022\n\n\006FRIDAY\020\006\022\014\n\010SATURDAY\020\007B\002H\001"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_org_jboss_netty_example_localtime_Location_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_org_jboss_netty_example_localtime_Location_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jboss_netty_example_localtime_Location_descriptor,
              new java.lang.String[] { "Continent", "City", },
              org.jboss.netty.example.localtime.LocalTimeProtocol.Location.class,
              org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder.class);
          internal_static_org_jboss_netty_example_localtime_Locations_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_org_jboss_netty_example_localtime_Locations_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jboss_netty_example_localtime_Locations_descriptor,
              new java.lang.String[] { "Location", },
              org.jboss.netty.example.localtime.LocalTimeProtocol.Locations.class,
              org.jboss.netty.example.localtime.LocalTimeProtocol.Locations.Builder.class);
          internal_static_org_jboss_netty_example_localtime_LocalTime_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_org_jboss_netty_example_localtime_LocalTime_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jboss_netty_example_localtime_LocalTime_descriptor,
              new java.lang.String[] { "Year", "Month", "DayOfMonth", "DayOfWeek", "Hour", "Minute", "Second", },
              org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.class,
              org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder.class);
          internal_static_org_jboss_netty_example_localtime_LocalTimes_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_org_jboss_netty_example_localtime_LocalTimes_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_org_jboss_netty_example_localtime_LocalTimes_descriptor,
              new java.lang.String[] { "LocalTime", },
              org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes.class,
              org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
