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

Side by Side Diff: third_party/protobuf/java/core/src/main/java/com/google/protobuf/ExtensionRegistry.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 14 matching lines...) Expand all
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 30
31 package com.google.protobuf; 31 package com.google.protobuf;
32 32
33 import com.google.protobuf.Descriptors.Descriptor; 33 import com.google.protobuf.Descriptors.Descriptor;
34 import com.google.protobuf.Descriptors.FieldDescriptor; 34 import com.google.protobuf.Descriptors.FieldDescriptor;
35
35 import java.util.Collection; 36 import java.util.Collection;
36 import java.util.Collections; 37 import java.util.Collections;
37 import java.util.HashMap; 38 import java.util.HashMap;
38 import java.util.HashSet; 39 import java.util.HashSet;
39 import java.util.Map; 40 import java.util.Map;
40 import java.util.Set; 41 import java.util.Set;
41 42
42 /** 43 /**
43 * A table of known extensions, searchable by name or field number. When 44 * A table of known extensions, searchable by name or field number. When
44 * parsing a protocol message that might have extensions, you must provide 45 * parsing a protocol message that might have extensions, you must provide
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 * @author kenton@google.com Kenton Varda 94 * @author kenton@google.com Kenton Varda
94 */ 95 */
95 public class ExtensionRegistry extends ExtensionRegistryLite { 96 public class ExtensionRegistry extends ExtensionRegistryLite {
96 /** Construct a new, empty instance. */ 97 /** Construct a new, empty instance. */
97 public static ExtensionRegistry newInstance() { 98 public static ExtensionRegistry newInstance() {
98 return new ExtensionRegistry(); 99 return new ExtensionRegistry();
99 } 100 }
100 101
101 /** Get the unmodifiable singleton empty instance. */ 102 /** Get the unmodifiable singleton empty instance. */
102 public static ExtensionRegistry getEmptyRegistry() { 103 public static ExtensionRegistry getEmptyRegistry() {
103 return EMPTY_REGISTRY; 104 return EMPTY;
104 } 105 }
105 106
106 107
107 /** Returns an unmodifiable view of the registry. */ 108 /** Returns an unmodifiable view of the registry. */
108 @Override 109 @Override
109 public ExtensionRegistry getUnmodifiable() { 110 public ExtensionRegistry getUnmodifiable() {
110 return new ExtensionRegistry(this); 111 return new ExtensionRegistry(this);
111 } 112 }
112 113
113 /** A (Descriptor, Message) pair, returned by lookup methods. */ 114 /** A (Descriptor, Message) pair, returned by lookup methods. */
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 /** Add an extension from a generated file to the registry. */ 236 /** Add an extension from a generated file to the registry. */
236 public void add(final Extension<?, ?> extension) { 237 public void add(final Extension<?, ?> extension) {
237 if (extension.getExtensionType() != Extension.ExtensionType.IMMUTABLE && 238 if (extension.getExtensionType() != Extension.ExtensionType.IMMUTABLE &&
238 extension.getExtensionType() != Extension.ExtensionType.MUTABLE) { 239 extension.getExtensionType() != Extension.ExtensionType.MUTABLE) {
239 // do not support other extension types. ignore 240 // do not support other extension types. ignore
240 return; 241 return;
241 } 242 }
242 add(newExtensionInfo(extension), extension.getExtensionType()); 243 add(newExtensionInfo(extension), extension.getExtensionType());
243 } 244 }
244 245
245 /** Add an extension from a generated file to the registry. */
246 public void add(final GeneratedMessage.GeneratedExtension<?, ?> extension) {
247 add((Extension<?, ?>) extension);
248 }
249
250 static ExtensionInfo newExtensionInfo(final Extension<?, ?> extension) { 246 static ExtensionInfo newExtensionInfo(final Extension<?, ?> extension) {
251 if (extension.getDescriptor().getJavaType() == 247 if (extension.getDescriptor().getJavaType() ==
252 FieldDescriptor.JavaType.MESSAGE) { 248 FieldDescriptor.JavaType.MESSAGE) {
253 if (extension.getMessageDefaultInstance() == null) { 249 if (extension.getMessageDefaultInstance() == null) {
254 throw new IllegalStateException( 250 throw new IllegalStateException(
255 "Registered message-type extension had null default instance: " + 251 "Registered message-type extension had null default instance: " +
256 extension.getDescriptor().getFullName()); 252 extension.getDescriptor().getFullName());
257 } 253 }
258 return new ExtensionInfo(extension.getDescriptor(), 254 return new ExtensionInfo(extension.getDescriptor(),
259 (Message) extension.getMessageDefaultInstance()); 255 (Message) extension.getMessageDefaultInstance());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 this.mutableExtensionsByNumber = 304 this.mutableExtensionsByNumber =
309 Collections.unmodifiableMap(other.mutableExtensionsByNumber); 305 Collections.unmodifiableMap(other.mutableExtensionsByNumber);
310 } 306 }
311 307
312 private final Map<String, ExtensionInfo> immutableExtensionsByName; 308 private final Map<String, ExtensionInfo> immutableExtensionsByName;
313 private final Map<String, ExtensionInfo> mutableExtensionsByName; 309 private final Map<String, ExtensionInfo> mutableExtensionsByName;
314 private final Map<DescriptorIntPair, ExtensionInfo> immutableExtensionsByNumbe r; 310 private final Map<DescriptorIntPair, ExtensionInfo> immutableExtensionsByNumbe r;
315 private final Map<DescriptorIntPair, ExtensionInfo> mutableExtensionsByNumber; 311 private final Map<DescriptorIntPair, ExtensionInfo> mutableExtensionsByNumber;
316 312
317 ExtensionRegistry(boolean empty) { 313 ExtensionRegistry(boolean empty) {
318 super(EMPTY_REGISTRY_LITE); 314 super(ExtensionRegistryLite.getEmptyRegistry());
319 this.immutableExtensionsByName = 315 this.immutableExtensionsByName =
320 Collections.<String, ExtensionInfo>emptyMap(); 316 Collections.<String, ExtensionInfo>emptyMap();
321 this.mutableExtensionsByName = 317 this.mutableExtensionsByName =
322 Collections.<String, ExtensionInfo>emptyMap(); 318 Collections.<String, ExtensionInfo>emptyMap();
323 this.immutableExtensionsByNumber = 319 this.immutableExtensionsByNumber =
324 Collections.<DescriptorIntPair, ExtensionInfo>emptyMap(); 320 Collections.<DescriptorIntPair, ExtensionInfo>emptyMap();
325 this.mutableExtensionsByNumber = 321 this.mutableExtensionsByNumber =
326 Collections.<DescriptorIntPair, ExtensionInfo>emptyMap(); 322 Collections.<DescriptorIntPair, ExtensionInfo>emptyMap();
327 } 323 }
328 static final ExtensionRegistry EMPTY_REGISTRY = new ExtensionRegistry(true); 324 private static final ExtensionRegistry EMPTY = new ExtensionRegistry(true);
329 325
330 private void add( 326 private void add(
331 final ExtensionInfo extension, 327 final ExtensionInfo extension,
332 final Extension.ExtensionType extensionType) { 328 final Extension.ExtensionType extensionType) {
333 if (!extension.descriptor.isExtension()) { 329 if (!extension.descriptor.isExtension()) {
334 throw new IllegalArgumentException( 330 throw new IllegalArgumentException(
335 "ExtensionRegistry.add() was given a FieldDescriptor for a regular " + 331 "ExtensionRegistry.add() was given a FieldDescriptor for a regular " +
336 "(non-extension) field."); 332 "(non-extension) field.");
337 } 333 }
338 334
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 @Override 383 @Override
388 public boolean equals(final Object obj) { 384 public boolean equals(final Object obj) {
389 if (!(obj instanceof DescriptorIntPair)) { 385 if (!(obj instanceof DescriptorIntPair)) {
390 return false; 386 return false;
391 } 387 }
392 final DescriptorIntPair other = (DescriptorIntPair)obj; 388 final DescriptorIntPair other = (DescriptorIntPair)obj;
393 return descriptor == other.descriptor && number == other.number; 389 return descriptor == other.descriptor && number == other.number;
394 } 390 }
395 } 391 }
396 } 392 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698