Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(626)

Side by Side Diff: third_party/protobuf/java/core/src/main/java/com/google/protobuf/AbstractMessageLite.java

Issue 2590803003: Revert "third_party/protobuf: Update to HEAD (83d681ee2c)" (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved. 2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/ 3 // https://developers.google.com/protocol-buffers/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
(...skipping 27 matching lines...) Expand all
38 38
39 /** 39 /**
40 * A partial implementation of the {@link MessageLite} interface which 40 * A partial implementation of the {@link MessageLite} interface which
41 * implements as many methods of that interface as possible in terms of other 41 * implements as many methods of that interface as possible in terms of other
42 * methods. 42 * methods.
43 * 43 *
44 * @author kenton@google.com Kenton Varda 44 * @author kenton@google.com Kenton Varda
45 */ 45 */
46 public abstract class AbstractMessageLite< 46 public abstract class AbstractMessageLite<
47 MessageType extends AbstractMessageLite<MessageType, BuilderType>, 47 MessageType extends AbstractMessageLite<MessageType, BuilderType>,
48 BuilderType extends AbstractMessageLite.Builder<MessageType, BuilderType>> 48 BuilderType extends AbstractMessageLite.Builder<MessageType, BuilderType>>
49 implements MessageLite { 49 implements MessageLite {
50 protected int memoizedHashCode = 0; 50 protected int memoizedHashCode = 0;
51 51
52 @Override 52 @Override
53 public ByteString toByteString() { 53 public ByteString toByteString() {
54 try { 54 try {
55 final ByteString.CodedBuilder out = 55 final ByteString.CodedBuilder out =
56 ByteString.newCodedBuilder(getSerializedSize()); 56 ByteString.newCodedBuilder(getSerializedSize());
57 writeTo(out.getCodedOutput()); 57 writeTo(out.getCodedOutput());
58 return out.build(); 58 return out.build();
59 } catch (IOException e) { 59 } catch (IOException e) {
60 throw new RuntimeException(getSerializingExceptionMessage("ByteString"), e ); 60 throw new RuntimeException(
61 "Serializing to a ByteString threw an IOException (should " +
62 "never happen).", e);
61 } 63 }
62 } 64 }
63 65
64 @Override 66 @Override
65 public byte[] toByteArray() { 67 public byte[] toByteArray() {
66 try { 68 try {
67 final byte[] result = new byte[getSerializedSize()]; 69 final byte[] result = new byte[getSerializedSize()];
68 final CodedOutputStream output = CodedOutputStream.newInstance(result); 70 final CodedOutputStream output = CodedOutputStream.newInstance(result);
69 writeTo(output); 71 writeTo(output);
70 output.checkNoSpaceLeft(); 72 output.checkNoSpaceLeft();
71 return result; 73 return result;
72 } catch (IOException e) { 74 } catch (IOException e) {
73 throw new RuntimeException(getSerializingExceptionMessage("byte array"), e ); 75 throw new RuntimeException(
76 "Serializing to a byte array threw an IOException " +
77 "(should never happen).", e);
74 } 78 }
75 } 79 }
76 80
77 @Override 81 @Override
78 public void writeTo(final OutputStream output) throws IOException { 82 public void writeTo(final OutputStream output) throws IOException {
79 final int bufferSize = 83 final int bufferSize =
80 CodedOutputStream.computePreferredBufferSize(getSerializedSize()); 84 CodedOutputStream.computePreferredBufferSize(getSerializedSize());
81 final CodedOutputStream codedOutput = 85 final CodedOutputStream codedOutput =
82 CodedOutputStream.newInstance(output, bufferSize); 86 CodedOutputStream.newInstance(output, bufferSize);
83 writeTo(codedOutput); 87 writeTo(codedOutput);
(...skipping 14 matching lines...) Expand all
98 102
99 103
100 /** 104 /**
101 * Package private helper method for AbstractParser to create 105 * Package private helper method for AbstractParser to create
102 * UninitializedMessageException. 106 * UninitializedMessageException.
103 */ 107 */
104 UninitializedMessageException newUninitializedMessageException() { 108 UninitializedMessageException newUninitializedMessageException() {
105 return new UninitializedMessageException(this); 109 return new UninitializedMessageException(this);
106 } 110 }
107 111
108 private String getSerializingExceptionMessage(String target) {
109 return "Serializing " + getClass().getName() + " to a " + target
110 + " threw an IOException (should never happen).";
111 }
112
113 protected static void checkByteStringIsUtf8(ByteString byteString) 112 protected static void checkByteStringIsUtf8(ByteString byteString)
114 throws IllegalArgumentException { 113 throws IllegalArgumentException {
115 if (!byteString.isValidUtf8()) { 114 if (!byteString.isValidUtf8()) {
116 throw new IllegalArgumentException("Byte string is not UTF-8."); 115 throw new IllegalArgumentException("Byte string is not UTF-8.");
117 } 116 }
118 } 117 }
119 118
120 protected static <T> void addAll(final Iterable<T> values, 119 protected static <T> void addAll(final Iterable<T> values,
121 final Collection<? super T> list) { 120 final Collection<? super T> list) {
122 Builder.addAll(values, list); 121 Builder.addAll(values, list);
123 } 122 }
124 123
125 /** 124 /**
126 * A partial implementation of the {@link Message.Builder} interface which 125 * A partial implementation of the {@link Message.Builder} interface which
127 * implements as many methods of that interface as possible in terms of 126 * implements as many methods of that interface as possible in terms of
128 * other methods. 127 * other methods.
129 */ 128 */
130 @SuppressWarnings("unchecked") 129 @SuppressWarnings("unchecked")
131 public abstract static class Builder< 130 public abstract static class Builder<
132 MessageType extends AbstractMessageLite<MessageType, BuilderType>, 131 MessageType extends AbstractMessageLite<MessageType, BuilderType>,
133 BuilderType extends Builder<MessageType, BuilderType>> 132 BuilderType extends Builder<MessageType, BuilderType>>
134 implements MessageLite.Builder { 133 implements MessageLite.Builder {
(...skipping 15 matching lines...) Expand all
150 @Override 149 @Override
151 public BuilderType mergeFrom(final ByteString data) throws InvalidProtocolBu fferException { 150 public BuilderType mergeFrom(final ByteString data) throws InvalidProtocolBu fferException {
152 try { 151 try {
153 final CodedInputStream input = data.newCodedInput(); 152 final CodedInputStream input = data.newCodedInput();
154 mergeFrom(input); 153 mergeFrom(input);
155 input.checkLastTagWas(0); 154 input.checkLastTagWas(0);
156 return (BuilderType) this; 155 return (BuilderType) this;
157 } catch (InvalidProtocolBufferException e) { 156 } catch (InvalidProtocolBufferException e) {
158 throw e; 157 throw e;
159 } catch (IOException e) { 158 } catch (IOException e) {
160 throw new RuntimeException(getReadingExceptionMessage("ByteString"), e); 159 throw new RuntimeException(
160 "Reading from a ByteString threw an IOException (should " +
161 "never happen).", e);
161 } 162 }
162 } 163 }
163 164
164 @Override 165 @Override
165 public BuilderType mergeFrom( 166 public BuilderType mergeFrom(
166 final ByteString data, final ExtensionRegistryLite extensionRegistry) 167 final ByteString data, final ExtensionRegistryLite extensionRegistry)
167 throws InvalidProtocolBufferException { 168 throws InvalidProtocolBufferException {
168 try { 169 try {
169 final CodedInputStream input = data.newCodedInput(); 170 final CodedInputStream input = data.newCodedInput();
170 mergeFrom(input, extensionRegistry); 171 mergeFrom(input, extensionRegistry);
171 input.checkLastTagWas(0); 172 input.checkLastTagWas(0);
172 return (BuilderType) this; 173 return (BuilderType) this;
173 } catch (InvalidProtocolBufferException e) { 174 } catch (InvalidProtocolBufferException e) {
174 throw e; 175 throw e;
175 } catch (IOException e) { 176 } catch (IOException e) {
176 throw new RuntimeException(getReadingExceptionMessage("ByteString"), e); 177 throw new RuntimeException(
178 "Reading from a ByteString threw an IOException (should " +
179 "never happen).", e);
177 } 180 }
178 } 181 }
179 182
180 @Override 183 @Override
181 public BuilderType mergeFrom(final byte[] data) throws InvalidProtocolBuffer Exception { 184 public BuilderType mergeFrom(final byte[] data) throws InvalidProtocolBuffer Exception {
182 return mergeFrom(data, 0, data.length); 185 return mergeFrom(data, 0, data.length);
183 } 186 }
184 187
185 @Override 188 @Override
186 public BuilderType mergeFrom(final byte[] data, final int off, final int len ) 189 public BuilderType mergeFrom(final byte[] data, final int off, final int len )
187 throws InvalidProtocolBufferException { 190 throws InvalidProtocolBufferException {
188 try { 191 try {
189 final CodedInputStream input = 192 final CodedInputStream input =
190 CodedInputStream.newInstance(data, off, len); 193 CodedInputStream.newInstance(data, off, len);
191 mergeFrom(input); 194 mergeFrom(input);
192 input.checkLastTagWas(0); 195 input.checkLastTagWas(0);
193 return (BuilderType) this; 196 return (BuilderType) this;
194 } catch (InvalidProtocolBufferException e) { 197 } catch (InvalidProtocolBufferException e) {
195 throw e; 198 throw e;
196 } catch (IOException e) { 199 } catch (IOException e) {
197 throw new RuntimeException(getReadingExceptionMessage("byte array"), e); 200 throw new RuntimeException(
201 "Reading from a byte array threw an IOException (should " +
202 "never happen).", e);
198 } 203 }
199 } 204 }
200 205
201 @Override 206 @Override
202 public BuilderType mergeFrom(final byte[] data, final ExtensionRegistryLite extensionRegistry) 207 public BuilderType mergeFrom(final byte[] data, final ExtensionRegistryLite extensionRegistry)
203 throws InvalidProtocolBufferException { 208 throws InvalidProtocolBufferException {
204 return mergeFrom(data, 0, data.length, extensionRegistry); 209 return mergeFrom(data, 0, data.length, extensionRegistry);
205 } 210 }
206 211
207 @Override 212 @Override
208 public BuilderType mergeFrom( 213 public BuilderType mergeFrom(
209 final byte[] data, 214 final byte[] data,
210 final int off, 215 final int off,
211 final int len, 216 final int len,
212 final ExtensionRegistryLite extensionRegistry) 217 final ExtensionRegistryLite extensionRegistry)
213 throws InvalidProtocolBufferException { 218 throws InvalidProtocolBufferException {
214 try { 219 try {
215 final CodedInputStream input = 220 final CodedInputStream input =
216 CodedInputStream.newInstance(data, off, len); 221 CodedInputStream.newInstance(data, off, len);
217 mergeFrom(input, extensionRegistry); 222 mergeFrom(input, extensionRegistry);
218 input.checkLastTagWas(0); 223 input.checkLastTagWas(0);
219 return (BuilderType) this; 224 return (BuilderType) this;
220 } catch (InvalidProtocolBufferException e) { 225 } catch (InvalidProtocolBufferException e) {
221 throw e; 226 throw e;
222 } catch (IOException e) { 227 } catch (IOException e) {
223 throw new RuntimeException(getReadingExceptionMessage("byte array"), e); 228 throw new RuntimeException(
229 "Reading from a byte array threw an IOException (should " +
230 "never happen).", e);
224 } 231 }
225 } 232 }
226 233
227 @Override 234 @Override
228 public BuilderType mergeFrom(final InputStream input) throws IOException { 235 public BuilderType mergeFrom(final InputStream input) throws IOException {
229 final CodedInputStream codedInput = CodedInputStream.newInstance(input); 236 final CodedInputStream codedInput = CodedInputStream.newInstance(input);
230 mergeFrom(codedInput); 237 mergeFrom(codedInput);
231 codedInput.checkLastTagWas(0); 238 codedInput.checkLastTagWas(0);
232 return (BuilderType) this; 239 return (BuilderType) this;
233 } 240 }
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 final InputStream limitedInput = new LimitedInputStream(input, size); 314 final InputStream limitedInput = new LimitedInputStream(input, size);
308 mergeFrom(limitedInput, extensionRegistry); 315 mergeFrom(limitedInput, extensionRegistry);
309 return true; 316 return true;
310 } 317 }
311 318
312 @Override 319 @Override
313 public boolean mergeDelimitedFrom(final InputStream input) throws IOExceptio n { 320 public boolean mergeDelimitedFrom(final InputStream input) throws IOExceptio n {
314 return mergeDelimitedFrom(input, 321 return mergeDelimitedFrom(input,
315 ExtensionRegistryLite.getEmptyRegistry()); 322 ExtensionRegistryLite.getEmptyRegistry());
316 } 323 }
317 324
318 @Override 325 @Override
319 @SuppressWarnings("unchecked") // isInstance takes care of this 326 @SuppressWarnings("unchecked") // isInstance takes care of this
320 public BuilderType mergeFrom(final MessageLite other) { 327 public BuilderType mergeFrom(final MessageLite other) {
321 if (!getDefaultInstanceForType().getClass().isInstance(other)) { 328 if (!getDefaultInstanceForType().getClass().isInstance(other)) {
322 throw new IllegalArgumentException( 329 throw new IllegalArgumentException(
323 "mergeFrom(MessageLite) can only merge messages of the same type."); 330 "mergeFrom(MessageLite) can only merge messages of the same type.");
324 } 331 }
325 332
326 return internalMergeFrom((MessageType) other); 333 return internalMergeFrom((MessageType) other);
327 } 334 }
328 335
329 protected abstract BuilderType internalMergeFrom(MessageType message); 336 protected abstract BuilderType internalMergeFrom(MessageType message);
330 337
331 private String getReadingExceptionMessage(String target) {
332 return "Reading " + getClass().getName() + " from a " + target
333 + " threw an IOException (should never happen).";
334 }
335
336 /** 338 /**
337 * Construct an UninitializedMessageException reporting missing fields in 339 * Construct an UninitializedMessageException reporting missing fields in
338 * the given message. 340 * the given message.
339 */ 341 */
340 protected static UninitializedMessageException 342 protected static UninitializedMessageException
341 newUninitializedMessageException(MessageLite message) { 343 newUninitializedMessageException(MessageLite message) {
342 return new UninitializedMessageException(message); 344 return new UninitializedMessageException(message);
343 } 345 }
344 346
345 /** 347 /**
(...skipping 29 matching lines...) Expand all
375 377
376 private static void checkForNullValues(final Iterable<?> values) { 378 private static void checkForNullValues(final Iterable<?> values) {
377 for (final Object value : values) { 379 for (final Object value : values) {
378 if (value == null) { 380 if (value == null) {
379 throw new NullPointerException(); 381 throw new NullPointerException();
380 } 382 }
381 } 383 }
382 } 384 }
383 } 385 }
384 } 386 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698