http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/7cf06762/proto_src/org/waveprotocol/box/profile/ProfilesProto.java
----------------------------------------------------------------------
diff --git a/proto_src/org/waveprotocol/box/profile/ProfilesProto.java 
b/proto_src/org/waveprotocol/box/profile/ProfilesProto.java
new file mode 100644
index 0000000..c17525b
--- /dev/null
+++ b/proto_src/org/waveprotocol/box/profile/ProfilesProto.java
@@ -0,0 +1,1177 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: org/waveprotocol/box/profile/profiles.proto
+
+package org.waveprotocol.box.profile;
+
+public final class ProfilesProto {
+  private ProfilesProto() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+  }
+  public static final class ProfileRequest extends
+      com.google.protobuf.GeneratedMessage {
+    // Use ProfileRequest.newBuilder() to construct.
+    private ProfileRequest() {
+      initFields();
+    }
+    private ProfileRequest(boolean noInit) {}
+    
+    private static final ProfileRequest defaultInstance;
+    public static ProfileRequest getDefaultInstance() {
+      return defaultInstance;
+    }
+    
+    public ProfileRequest getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+    
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return 
org.waveprotocol.box.profile.ProfilesProto.internal_static_profile_ProfileRequest_descriptor;
+    }
+    
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return 
org.waveprotocol.box.profile.ProfilesProto.internal_static_profile_ProfileRequest_fieldAccessorTable;
+    }
+    
+    // repeated string addresses = 1;
+    public static final int ADDRESSES_FIELD_NUMBER = 1;
+    private java.util.List<java.lang.String> addresses_ =
+      java.util.Collections.emptyList();
+    public java.util.List<java.lang.String> getAddressesList() {
+      return addresses_;
+    }
+    public int getAddressesCount() { return addresses_.size(); }
+    public java.lang.String getAddresses(int index) {
+      return addresses_.get(index);
+    }
+    
+    private void initFields() {
+    }
+    public final boolean isInitialized() {
+      return true;
+    }
+    
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      for (java.lang.String element : getAddressesList()) {
+        output.writeString(1, element);
+      }
+      getUnknownFields().writeTo(output);
+    }
+    
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+    
+      size = 0;
+      {
+        int dataSize = 0;
+        for (java.lang.String element : getAddressesList()) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeStringSizeNoTag(element);
+        }
+        size += dataSize;
+        size += 1 * getAddressesList().size();
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+    
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data).buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
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.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data).buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data, extensionRegistry)
+               .buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input).buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input, extensionRegistry)
+               .buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
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.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
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.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input).buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
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.waveprotocol.box.profile.ProfilesProto.ProfileRequest prototype) 
{
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+    
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder> {
+      private org.waveprotocol.box.profile.ProfilesProto.ProfileRequest result;
+      
+      // Construct using 
org.waveprotocol.box.profile.ProfilesProto.ProfileRequest.newBuilder()
+      private Builder() {}
+      
+      private static Builder create() {
+        Builder builder = new Builder();
+        builder.result = new 
org.waveprotocol.box.profile.ProfilesProto.ProfileRequest();
+        return builder;
+      }
+      
+      protected org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
internalGetResult() {
+        return result;
+      }
+      
+      public Builder clear() {
+        if (result == null) {
+          throw new IllegalStateException(
+            "Cannot call clear() after build().");
+        }
+        result = new 
org.waveprotocol.box.profile.ProfilesProto.ProfileRequest();
+        return this;
+      }
+      
+      public Builder clone() {
+        return create().mergeFrom(result);
+      }
+      
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return 
org.waveprotocol.box.profile.ProfilesProto.ProfileRequest.getDescriptor();
+      }
+      
+      public org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
getDefaultInstanceForType() {
+        return 
org.waveprotocol.box.profile.ProfilesProto.ProfileRequest.getDefaultInstance();
+      }
+      
+      public boolean isInitialized() {
+        return result.isInitialized();
+      }
+      public org.waveprotocol.box.profile.ProfilesProto.ProfileRequest build() 
{
+        if (result != null && !isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return buildPartial();
+      }
+      
+      private org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
buildParsed()
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        if (!isInitialized()) {
+          throw newUninitializedMessageException(
+            result).asInvalidProtocolBufferException();
+        }
+        return buildPartial();
+      }
+      
+      public org.waveprotocol.box.profile.ProfilesProto.ProfileRequest 
buildPartial() {
+        if (result == null) {
+          throw new IllegalStateException(
+            "build() has already been called on this Builder.");
+        }
+        if (result.addresses_ != java.util.Collections.EMPTY_LIST) {
+          result.addresses_ =
+            java.util.Collections.unmodifiableList(result.addresses_);
+        }
+        org.waveprotocol.box.profile.ProfilesProto.ProfileRequest returnMe = 
result;
+        result = null;
+        return returnMe;
+      }
+      
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof 
org.waveprotocol.box.profile.ProfilesProto.ProfileRequest) {
+          return 
mergeFrom((org.waveprotocol.box.profile.ProfilesProto.ProfileRequest)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+      
+      public Builder 
mergeFrom(org.waveprotocol.box.profile.ProfilesProto.ProfileRequest other) {
+        if (other == 
org.waveprotocol.box.profile.ProfilesProto.ProfileRequest.getDefaultInstance()) 
return this;
+        if (!other.addresses_.isEmpty()) {
+          if (result.addresses_.isEmpty()) {
+            result.addresses_ = new java.util.ArrayList<java.lang.String>();
+          }
+          result.addresses_.addAll(other.addresses_);
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+      
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder(
+            this.getUnknownFields());
+        while (true) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              this.setUnknownFields(unknownFields.build());
+              return this;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                this.setUnknownFields(unknownFields.build());
+                return this;
+              }
+              break;
+            }
+            case 10: {
+              addAddresses(input.readString());
+              break;
+            }
+          }
+        }
+      }
+      
+      
+      // repeated string addresses = 1;
+      public java.util.List<java.lang.String> getAddressesList() {
+        return java.util.Collections.unmodifiableList(result.addresses_);
+      }
+      public int getAddressesCount() {
+        return result.getAddressesCount();
+      }
+      public java.lang.String getAddresses(int index) {
+        return result.getAddresses(index);
+      }
+      public Builder setAddresses(int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  result.addresses_.set(index, value);
+        return this;
+      }
+      public Builder addAddresses(java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  if (result.addresses_.isEmpty()) {
+          result.addresses_ = new java.util.ArrayList<java.lang.String>();
+        }
+        result.addresses_.add(value);
+        return this;
+      }
+      public Builder addAllAddresses(
+          java.lang.Iterable<? extends java.lang.String> values) {
+        if (result.addresses_.isEmpty()) {
+          result.addresses_ = new java.util.ArrayList<java.lang.String>();
+        }
+        super.addAll(values, result.addresses_);
+        return this;
+      }
+      public Builder clearAddresses() {
+        result.addresses_ = java.util.Collections.emptyList();
+        return this;
+      }
+      
+      // @@protoc_insertion_point(builder_scope:profile.ProfileRequest)
+    }
+    
+    static {
+      defaultInstance = new ProfileRequest(true);
+      org.waveprotocol.box.profile.ProfilesProto.internalForceInit();
+      defaultInstance.initFields();
+    }
+    
+    // @@protoc_insertion_point(class_scope:profile.ProfileRequest)
+  }
+  
+  public static final class ProfileResponse extends
+      com.google.protobuf.GeneratedMessage {
+    // Use ProfileResponse.newBuilder() to construct.
+    private ProfileResponse() {
+      initFields();
+    }
+    private ProfileResponse(boolean noInit) {}
+    
+    private static final ProfileResponse defaultInstance;
+    public static ProfileResponse getDefaultInstance() {
+      return defaultInstance;
+    }
+    
+    public ProfileResponse getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+    
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return 
org.waveprotocol.box.profile.ProfilesProto.internal_static_profile_ProfileResponse_descriptor;
+    }
+    
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return 
org.waveprotocol.box.profile.ProfilesProto.internal_static_profile_ProfileResponse_fieldAccessorTable;
+    }
+    
+    public static final class FetchedProfile extends
+        com.google.protobuf.GeneratedMessage {
+      // Use FetchedProfile.newBuilder() to construct.
+      private FetchedProfile() {
+        initFields();
+      }
+      private FetchedProfile(boolean noInit) {}
+      
+      private static final FetchedProfile defaultInstance;
+      public static FetchedProfile getDefaultInstance() {
+        return defaultInstance;
+      }
+      
+      public FetchedProfile getDefaultInstanceForType() {
+        return defaultInstance;
+      }
+      
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return 
org.waveprotocol.box.profile.ProfilesProto.internal_static_profile_ProfileResponse_FetchedProfile_descriptor;
+      }
+      
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return 
org.waveprotocol.box.profile.ProfilesProto.internal_static_profile_ProfileResponse_FetchedProfile_fieldAccessorTable;
+      }
+      
+      // required string address = 1;
+      public static final int ADDRESS_FIELD_NUMBER = 1;
+      private boolean hasAddress;
+      private java.lang.String address_ = "";
+      public boolean hasAddress() { return hasAddress; }
+      public java.lang.String getAddress() { return address_; }
+      
+      // required string name = 2;
+      public static final int NAME_FIELD_NUMBER = 2;
+      private boolean hasName;
+      private java.lang.String name_ = "";
+      public boolean hasName() { return hasName; }
+      public java.lang.String getName() { return name_; }
+      
+      // required string imageUrl = 3;
+      public static final int IMAGEURL_FIELD_NUMBER = 3;
+      private boolean hasImageUrl;
+      private java.lang.String imageUrl_ = "";
+      public boolean hasImageUrl() { return hasImageUrl; }
+      public java.lang.String getImageUrl() { return imageUrl_; }
+      
+      // optional string profileUrl = 4;
+      public static final int PROFILEURL_FIELD_NUMBER = 4;
+      private boolean hasProfileUrl;
+      private java.lang.String profileUrl_ = "";
+      public boolean hasProfileUrl() { return hasProfileUrl; }
+      public java.lang.String getProfileUrl() { return profileUrl_; }
+      
+      private void initFields() {
+      }
+      public final boolean isInitialized() {
+        if (!hasAddress) return false;
+        if (!hasName) return false;
+        if (!hasImageUrl) return false;
+        return true;
+      }
+      
+      public void writeTo(com.google.protobuf.CodedOutputStream output)
+                          throws java.io.IOException {
+        getSerializedSize();
+        if (hasAddress()) {
+          output.writeString(1, getAddress());
+        }
+        if (hasName()) {
+          output.writeString(2, getName());
+        }
+        if (hasImageUrl()) {
+          output.writeString(3, getImageUrl());
+        }
+        if (hasProfileUrl()) {
+          output.writeString(4, getProfileUrl());
+        }
+        getUnknownFields().writeTo(output);
+      }
+      
+      private int memoizedSerializedSize = -1;
+      public int getSerializedSize() {
+        int size = memoizedSerializedSize;
+        if (size != -1) return size;
+      
+        size = 0;
+        if (hasAddress()) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeStringSize(1, getAddress());
+        }
+        if (hasName()) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeStringSize(2, getName());
+        }
+        if (hasImageUrl()) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeStringSize(3, getImageUrl());
+        }
+        if (hasProfileUrl()) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeStringSize(4, getProfileUrl());
+        }
+        size += getUnknownFields().getSerializedSize();
+        memoizedSerializedSize = size;
+        return size;
+      }
+      
+      public static 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
parseFrom(
+          com.google.protobuf.ByteString data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return newBuilder().mergeFrom(data).buildParsed();
+      }
+      public static 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
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.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
parseFrom(byte[] data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return newBuilder().mergeFrom(data).buildParsed();
+      }
+      public static 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
parseFrom(
+          byte[] data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return newBuilder().mergeFrom(data, extensionRegistry)
+                 .buildParsed();
+      }
+      public static 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
parseFrom(java.io.InputStream input)
+          throws java.io.IOException {
+        return newBuilder().mergeFrom(input).buildParsed();
+      }
+      public static 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
parseFrom(
+          java.io.InputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        return newBuilder().mergeFrom(input, extensionRegistry)
+                 .buildParsed();
+      }
+      public static 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
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.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
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.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
parseFrom(
+          com.google.protobuf.CodedInputStream input)
+          throws java.io.IOException {
+        return newBuilder().mergeFrom(input).buildParsed();
+      }
+      public static 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
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.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile
 prototype) {
+        return newBuilder().mergeFrom(prototype);
+      }
+      public Builder toBuilder() { return newBuilder(this); }
+      
+      public static final class Builder extends
+          com.google.protobuf.GeneratedMessage.Builder<Builder> {
+        private 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
result;
+        
+        // Construct using 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.newBuilder()
+        private Builder() {}
+        
+        private static Builder create() {
+          Builder builder = new Builder();
+          builder.result = new 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile();
+          return builder;
+        }
+        
+        protected 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
internalGetResult() {
+          return result;
+        }
+        
+        public Builder clear() {
+          if (result == null) {
+            throw new IllegalStateException(
+              "Cannot call clear() after build().");
+          }
+          result = new 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile();
+          return this;
+        }
+        
+        public Builder clone() {
+          return create().mergeFrom(result);
+        }
+        
+        public com.google.protobuf.Descriptors.Descriptor
+            getDescriptorForType() {
+          return 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.getDescriptor();
+        }
+        
+        public 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
getDefaultInstanceForType() {
+          return 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.getDefaultInstance();
+        }
+        
+        public boolean isInitialized() {
+          return result.isInitialized();
+        }
+        public 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
build() {
+          if (result != null && !isInitialized()) {
+            throw newUninitializedMessageException(result);
+          }
+          return buildPartial();
+        }
+        
+        private 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
buildParsed()
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          if (!isInitialized()) {
+            throw newUninitializedMessageException(
+              result).asInvalidProtocolBufferException();
+          }
+          return buildPartial();
+        }
+        
+        public 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
buildPartial() {
+          if (result == null) {
+            throw new IllegalStateException(
+              "build() has already been called on this Builder.");
+          }
+          
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
returnMe = result;
+          result = null;
+          return returnMe;
+        }
+        
+        public Builder mergeFrom(com.google.protobuf.Message other) {
+          if (other instanceof 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile) {
+            return 
mergeFrom((org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile)other);
+          } else {
+            super.mergeFrom(other);
+            return this;
+          }
+        }
+        
+        public Builder 
mergeFrom(org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile
 other) {
+          if (other == 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.getDefaultInstance())
 return this;
+          if (other.hasAddress()) {
+            setAddress(other.getAddress());
+          }
+          if (other.hasName()) {
+            setName(other.getName());
+          }
+          if (other.hasImageUrl()) {
+            setImageUrl(other.getImageUrl());
+          }
+          if (other.hasProfileUrl()) {
+            setProfileUrl(other.getProfileUrl());
+          }
+          this.mergeUnknownFields(other.getUnknownFields());
+          return this;
+        }
+        
+        public Builder mergeFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws java.io.IOException {
+          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+            com.google.protobuf.UnknownFieldSet.newBuilder(
+              this.getUnknownFields());
+          while (true) {
+            int tag = input.readTag();
+            switch (tag) {
+              case 0:
+                this.setUnknownFields(unknownFields.build());
+                return this;
+              default: {
+                if (!parseUnknownField(input, unknownFields,
+                                       extensionRegistry, tag)) {
+                  this.setUnknownFields(unknownFields.build());
+                  return this;
+                }
+                break;
+              }
+              case 10: {
+                setAddress(input.readString());
+                break;
+              }
+              case 18: {
+                setName(input.readString());
+                break;
+              }
+              case 26: {
+                setImageUrl(input.readString());
+                break;
+              }
+              case 34: {
+                setProfileUrl(input.readString());
+                break;
+              }
+            }
+          }
+        }
+        
+        
+        // required string address = 1;
+        public boolean hasAddress() {
+          return result.hasAddress();
+        }
+        public java.lang.String getAddress() {
+          return result.getAddress();
+        }
+        public Builder setAddress(java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  result.hasAddress = true;
+          result.address_ = value;
+          return this;
+        }
+        public Builder clearAddress() {
+          result.hasAddress = false;
+          result.address_ = getDefaultInstance().getAddress();
+          return this;
+        }
+        
+        // required string name = 2;
+        public boolean hasName() {
+          return result.hasName();
+        }
+        public java.lang.String getName() {
+          return result.getName();
+        }
+        public Builder setName(java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  result.hasName = true;
+          result.name_ = value;
+          return this;
+        }
+        public Builder clearName() {
+          result.hasName = false;
+          result.name_ = getDefaultInstance().getName();
+          return this;
+        }
+        
+        // required string imageUrl = 3;
+        public boolean hasImageUrl() {
+          return result.hasImageUrl();
+        }
+        public java.lang.String getImageUrl() {
+          return result.getImageUrl();
+        }
+        public Builder setImageUrl(java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  result.hasImageUrl = true;
+          result.imageUrl_ = value;
+          return this;
+        }
+        public Builder clearImageUrl() {
+          result.hasImageUrl = false;
+          result.imageUrl_ = getDefaultInstance().getImageUrl();
+          return this;
+        }
+        
+        // optional string profileUrl = 4;
+        public boolean hasProfileUrl() {
+          return result.hasProfileUrl();
+        }
+        public java.lang.String getProfileUrl() {
+          return result.getProfileUrl();
+        }
+        public Builder setProfileUrl(java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  result.hasProfileUrl = true;
+          result.profileUrl_ = value;
+          return this;
+        }
+        public Builder clearProfileUrl() {
+          result.hasProfileUrl = false;
+          result.profileUrl_ = getDefaultInstance().getProfileUrl();
+          return this;
+        }
+        
+        // 
@@protoc_insertion_point(builder_scope:profile.ProfileResponse.FetchedProfile)
+      }
+      
+      static {
+        defaultInstance = new FetchedProfile(true);
+        org.waveprotocol.box.profile.ProfilesProto.internalForceInit();
+        defaultInstance.initFields();
+      }
+      
+      // 
@@protoc_insertion_point(class_scope:profile.ProfileResponse.FetchedProfile)
+    }
+    
+    // repeated .profile.ProfileResponse.FetchedProfile profiles = 1;
+    public static final int PROFILES_FIELD_NUMBER = 1;
+    private 
java.util.List<org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile>
 profiles_ =
+      java.util.Collections.emptyList();
+    public 
java.util.List<org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile>
 getProfilesList() {
+      return profiles_;
+    }
+    public int getProfilesCount() { return profiles_.size(); }
+    public 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
getProfiles(int index) {
+      return profiles_.get(index);
+    }
+    
+    private void initFields() {
+    }
+    public final boolean isInitialized() {
+      for 
(org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
element : getProfilesList()) {
+        if (!element.isInitialized()) return false;
+      }
+      return true;
+    }
+    
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      for 
(org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
element : getProfilesList()) {
+        output.writeMessage(1, element);
+      }
+      getUnknownFields().writeTo(output);
+    }
+    
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+    
+      size = 0;
+      for 
(org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
element : getProfilesList()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(1, element);
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+    
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data).buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
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.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data).buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return newBuilder().mergeFrom(data, extensionRegistry)
+               .buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input).buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input, extensionRegistry)
+               .buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
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.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
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.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return newBuilder().mergeFrom(input).buildParsed();
+    }
+    public static org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
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.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+    
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder> {
+      private org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
result;
+      
+      // Construct using 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.newBuilder()
+      private Builder() {}
+      
+      private static Builder create() {
+        Builder builder = new Builder();
+        builder.result = new 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse();
+        return builder;
+      }
+      
+      protected org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
internalGetResult() {
+        return result;
+      }
+      
+      public Builder clear() {
+        if (result == null) {
+          throw new IllegalStateException(
+            "Cannot call clear() after build().");
+        }
+        result = new 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse();
+        return this;
+      }
+      
+      public Builder clone() {
+        return create().mergeFrom(result);
+      }
+      
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.getDescriptor();
+      }
+      
+      public org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
getDefaultInstanceForType() {
+        return 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.getDefaultInstance();
+      }
+      
+      public boolean isInitialized() {
+        return result.isInitialized();
+      }
+      public org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
build() {
+        if (result != null && !isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return buildPartial();
+      }
+      
+      private org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
buildParsed()
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        if (!isInitialized()) {
+          throw newUninitializedMessageException(
+            result).asInvalidProtocolBufferException();
+        }
+        return buildPartial();
+      }
+      
+      public org.waveprotocol.box.profile.ProfilesProto.ProfileResponse 
buildPartial() {
+        if (result == null) {
+          throw new IllegalStateException(
+            "build() has already been called on this Builder.");
+        }
+        if (result.profiles_ != java.util.Collections.EMPTY_LIST) {
+          result.profiles_ =
+            java.util.Collections.unmodifiableList(result.profiles_);
+        }
+        org.waveprotocol.box.profile.ProfilesProto.ProfileResponse returnMe = 
result;
+        result = null;
+        return returnMe;
+      }
+      
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse) {
+          return 
mergeFrom((org.waveprotocol.box.profile.ProfilesProto.ProfileResponse)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+      
+      public Builder 
mergeFrom(org.waveprotocol.box.profile.ProfilesProto.ProfileResponse other) {
+        if (other == 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.getDefaultInstance())
 return this;
+        if (!other.profiles_.isEmpty()) {
+          if (result.profiles_.isEmpty()) {
+            result.profiles_ = new 
java.util.ArrayList<org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile>();
+          }
+          result.profiles_.addAll(other.profiles_);
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+      
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder(
+            this.getUnknownFields());
+        while (true) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              this.setUnknownFields(unknownFields.build());
+              return this;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                this.setUnknownFields(unknownFields.build());
+                return this;
+              }
+              break;
+            }
+            case 10: {
+              
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.Builder
 subBuilder = 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.newBuilder();
+              input.readMessage(subBuilder, extensionRegistry);
+              addProfiles(subBuilder.buildPartial());
+              break;
+            }
+          }
+        }
+      }
+      
+      
+      // repeated .profile.ProfileResponse.FetchedProfile profiles = 1;
+      public 
java.util.List<org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile>
 getProfilesList() {
+        return java.util.Collections.unmodifiableList(result.profiles_);
+      }
+      public int getProfilesCount() {
+        return result.getProfilesCount();
+      }
+      public 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
getProfiles(int index) {
+        return result.getProfiles(index);
+      }
+      public Builder setProfiles(int index, 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile 
value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        result.profiles_.set(index, value);
+        return this;
+      }
+      public Builder setProfiles(int index, 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.Builder
 builderForValue) {
+        result.profiles_.set(index, builderForValue.build());
+        return this;
+      }
+      public Builder 
addProfiles(org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile
 value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        if (result.profiles_.isEmpty()) {
+          result.profiles_ = new 
java.util.ArrayList<org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile>();
+        }
+        result.profiles_.add(value);
+        return this;
+      }
+      public Builder 
addProfiles(org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.Builder
 builderForValue) {
+        if (result.profiles_.isEmpty()) {
+          result.profiles_ = new 
java.util.ArrayList<org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile>();
+        }
+        result.profiles_.add(builderForValue.build());
+        return this;
+      }
+      public Builder addAllProfiles(
+          java.lang.Iterable<? extends 
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile> 
values) {
+        if (result.profiles_.isEmpty()) {
+          result.profiles_ = new 
java.util.ArrayList<org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile>();
+        }
+        super.addAll(values, result.profiles_);
+        return this;
+      }
+      public Builder clearProfiles() {
+        result.profiles_ = java.util.Collections.emptyList();
+        return this;
+      }
+      
+      // @@protoc_insertion_point(builder_scope:profile.ProfileResponse)
+    }
+    
+    static {
+      defaultInstance = new ProfileResponse(true);
+      org.waveprotocol.box.profile.ProfilesProto.internalForceInit();
+      defaultInstance.initFields();
+    }
+    
+    // @@protoc_insertion_point(class_scope:profile.ProfileResponse)
+  }
+  
+  private static com.google.protobuf.Descriptors.Descriptor
+    internal_static_profile_ProfileRequest_descriptor;
+  private static
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
+      internal_static_profile_ProfileRequest_fieldAccessorTable;
+  private static com.google.protobuf.Descriptors.Descriptor
+    internal_static_profile_ProfileResponse_descriptor;
+  private static
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
+      internal_static_profile_ProfileResponse_fieldAccessorTable;
+  private static com.google.protobuf.Descriptors.Descriptor
+    internal_static_profile_ProfileResponse_FetchedProfile_descriptor;
+  private static
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
+      
internal_static_profile_ProfileResponse_FetchedProfile_fieldAccessorTable;
+  
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n+org/waveprotocol/box/profile/profiles." +
+      "proto\022\007profile\"#\n\016ProfileRequest\022\021\n\taddr" +
+      "esses\030\001 \003(\t\"\243\001\n\017ProfileResponse\0229\n\010profi" +
+      "les\030\001 \003(\0132\'.profile.ProfileResponse.Fetc" +
+      "hedProfile\032U\n\016FetchedProfile\022\017\n\007address\030" +
+      "\001 \002(\t\022\014\n\004name\030\002 
\002(\t\022\020\n\010imageUrl\030\003 \002(\t\022\022\n" +
+      "\nprofileUrl\030\004 \001(\tB-\n\034org.waveprotocol.bo" +
+      "x.profileB\rProfilesProto"
+    };
+    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_profile_ProfileRequest_descriptor =
+            getDescriptor().getMessageTypes().get(0);
+          internal_static_profile_ProfileRequest_fieldAccessorTable = new
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+              internal_static_profile_ProfileRequest_descriptor,
+              new java.lang.String[] { "Addresses", },
+              org.waveprotocol.box.profile.ProfilesProto.ProfileRequest.class,
+              
org.waveprotocol.box.profile.ProfilesProto.ProfileRequest.Builder.class);
+          internal_static_profile_ProfileResponse_descriptor =
+            getDescriptor().getMessageTypes().get(1);
+          internal_static_profile_ProfileResponse_fieldAccessorTable = new
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+              internal_static_profile_ProfileResponse_descriptor,
+              new java.lang.String[] { "Profiles", },
+              org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.class,
+              
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.Builder.class);
+          internal_static_profile_ProfileResponse_FetchedProfile_descriptor =
+            
internal_static_profile_ProfileResponse_descriptor.getNestedTypes().get(0);
+          
internal_static_profile_ProfileResponse_FetchedProfile_fieldAccessorTable = new
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+              
internal_static_profile_ProfileResponse_FetchedProfile_descriptor,
+              new java.lang.String[] { "Address", "Name", "ImageUrl", 
"ProfileUrl", },
+              
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.class,
+              
org.waveprotocol.box.profile.ProfilesProto.ProfileResponse.FetchedProfile.Builder.class);
+          return null;
+        }
+      };
+    com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        }, assigner);
+  }
+  
+  public static void internalForceInit() {}
+  
+  // @@protoc_insertion_point(outer_class_scope)
+}

Reply via email to